How
agent 直连逻辑服务器, 所以 agent 自带路由功能.
同时要求每个 agent 都同时连接所有 logic server, 连接复杂度比较高. 但比起增加一个 router server 或 manager server 的架构要简单,逻辑层面要考虑的问题较少,也避免了单点故障给整个系统可用性造成的风险
在新的问题出现之前,采取最简单的做法.
Route Of Agent
agent 必须理解一些协议以完成 router 功能.
- login. 完成 user 登录, 断线重连等
- logout.
- 断线. 需转发至 user 当前所在的 logic server
- enterRoom/enterTable 转发至对应的 logic server
- leaveRoom/leaveTable 转发至对应的 logic server
- 其他相关协议
原则如下:
- 大厅服务器负责通用逻辑, 如签到,商城,绑定手机等等
- 大厅协议号在一定范围内, 落在其范围的包都转发至大厅服务器, 这样能支持游戏内充值等操作
- 其他协议需先定位 user 当前所在的 logic server, 然后转发至相应服务器
- 考虑断线重连的问题
协议
- 前端使用 websocket
- 内部使用 tcp
- 包封装使用 protobuf3
Logic Id
see LogicId.md
配置管理
see ConfManagement.md
gossip 协议的心跳与断线重连