前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统架构之三(业务运营支撑系统)

系统架构之三(业务运营支撑系统)

作者头像
李海彬
发布2018-03-23 11:13:19
1.8K0
发布2018-03-23 11:13:19
举报
文章被收录于专栏:Golang语言社区

本人从事过3年的移动业务运营支撑系统开发,行业术语叫做boss系统,后又转入游戏行业进行游戏开发。 现设计一个业务运营支撑系统的架构如下:

详细解释各模块如下:

gateway/dispatch : 网关服务程序,使用多个以及dns来实现负载, 负责接受来自外部系统的请求,将外部系统请求的协议格式,转换为内部的协议格式,或反向转换。充当业务消息转发的中转站,防御网络恶意攻击。其中dispatch模块负责事件分发,向注册中心查询业务服务对象地址,并根据业务将业务请求分发给不同的业务服务对象,通过配置实现业务流程的集中控制,顺序控制,有点类似bpel的业务流程定制功能。

busiserver: 业务服务程序,一个业务服务程序下有多个业务服务对象。

gridnode: 进程管理节点,管理一个节点上的所有进程的启动,停止等,busiserver通过gridnode向gridregistry动态注册或注销业务服务对象。

gridregistry: 注册中心, 业务服务对象注册中心,所有的业务服务对象都要向gridregistry注册。dispatch模块只能查询到向gridregistry注册成功的服务对象。gridregistry向 dispatch提供服务对象的地址时,可以选择负载均衡策略。业务服务对象可以静态向gridregistry注册,也可以动态注册。同时gridregistry充当进程管理的中心,gridregistry通过联系所有的gridnode,管理整个系统的所有busiserver,并监视所有busiserver的状态,监视所有gridnode所在机器的压力情况。gridregistry采取主从备份的方式,另dispatch模块不会每次都向gridregistry请求业务服务对象的地址,而是第一次请求到后,以后直接跟第一次请求到的业务服务对象交互所以gridregstry的压力很小。

dbmgr: 数据服务器,所有需要持久的数据,都经过dbmgr与数据库进行交互,dbmgr通过数据缓存,批量事务,本地持久等手段大大提高整体系统性能。对于一般同时在线只有几千的系统dbmgr只需要1个则够,对于超大型系统,玩家超多的系统,则可以使用分区方式,每一个区使用一个dbmgr,系统根据玩家所属的区来选择对应的dbmgr。dbmgr本身也可以通过gridregistry以及gridnode来监控以及管理,本图为了简洁一些略掉。

backendmgr: 系统维护人员后台管理系统,此系统通过gridregistry可以获取系统中所有节点的状态以及节点上服务的运行状态,并手工对所有的服务进行管理。

此架构主要参考ice中间件的icegrid架构,以及我从事过的电信行业业务运行支撑系统的架构。 可以应用于电信以及电力等各行业的业务运营支撑系统。 各位有什么建议,欢迎指点交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档