DESIGN.cn.md 1.3 KB

How

agent 直连逻辑服务器, 所以 agent 自带路由功能.

同时要求每个 agent 都同时连接所有 logic server, 连接复杂度比较高. 但比起增加一个 router server 或 manager server 的架构要简单,逻辑层面要考虑的问题较少,也避免了单点故障给整个系统可用性造成的风险

在新的问题出现之前,采取最简单的做法.

Route Of Agent

  1. agent 必须理解一些协议以完成 router 功能.

    • login. 完成 user 登录, 断线重连等
    • logout.
    • 断线. 需转发至 user 当前所在的 logic server
    • enterRoom/enterTable 转发至对应的 logic server
    • leaveRoom/leaveTable 转发至对应的 logic server
    • 其他相关协议
  2. 原则如下:

    • 大厅服务器负责通用逻辑, 如签到,商城,绑定手机等等
    • 大厅协议号在一定范围内, 落在其范围的包都转发至大厅服务器, 这样能支持游戏内充值等操作
    • 其他协议需先定位 user 当前所在的 logic server, 然后转发至相应服务器
    • 考虑断线重连的问题

协议

  • 前端使用 websocket
  • 内部使用 tcp
  • 包封装使用 protobuf3

Logic Id

see LogicId.md

配置管理

see ConfManagement.md

gossip 协议的心跳与断线重连