前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统架构之一(RPG游戏常用架构)

系统架构之一(RPG游戏常用架构)

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

RPG游戏经典的系统架构设计 :

bigword 游戏引擎就是使用这种架构,我认识的很多rpg游戏公司的同事也大致采用了这种架构方式。

loginapp : 登陆服务器,主要负责player 的登陆请求,验证player的合法性,为合法的player分配session,与cilent 采用短连接方式,可以有多个loginapp来负载均衡。验证player通过后,loginapp通过baseappmgr找到一个合适的baseapp发送给client。

baseapp: 我们可以叫做网关服务器,有多个来做负载均衡,与client 使用长连接方式,为player分配适合的cellapp,client发送的消息都通过baseapp转发给cellapp,cellapp返回给client的消息也都经过baseapp,充当游戏消息转发的中转站。 baseapp同时负责聊天模块。

cellapp : 可以叫游戏服务器或地图服务器,多个,负责具体游戏逻辑实现,与player进行游戏交互。

baseappmgr:管理网关服务器,只需要1个,或可以做主从备份方式。负责为player分配baseapp,并记录player所在的baseapp,cellapp踢客时先通知baseappmgr,然后baseappmgr找到对应的baseapp进行踢客。

cellappmgr: 管理游戏服务器,只需要1个,或可以做主从备份方式。负责为player分配合适的cellapp,并对cellapp进行管理。

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

revivier: 监视器,可以监视所有服务器的运行状态,如有必要可以对服务器进行启动,关闭等各种管理,其功能可以理解为ice中间件中icegrid架构的icegridnode和 icegridregistry的进程管理功能

MessageLogger/statLogger: 日志服务器,统计服务器, 记录系统的日志,或进行必要的信息收集及统计,此模块视整个系统的必要性,可选。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档