游戏全球同服服务器框架

背景:

最近公司要开发一款全球同服,所有玩家可相互匹配战斗、相互加好友、相互聊天的游戏


服务器需要面临的需求有:

  • 玩家注册量要支持十亿量级
  • 玩家在线量要支持千万到亿量级
  • 所有在线玩家可相互通信
  • 十亿级别玩家名模糊搜索

需要支持如此量级的连接,必须要消除服务器进程的单点问题,玩家客户端能够均匀的连接到各个服务器进程上。
如果玩家可动态选择连接的进程,轻则面临rpc没有命中、重则引发数据回档问题。玩家根据一定的规则均匀Hash到服务器各个进程中,玩家对应的进程固定,不用担心rpc命中和数据存盘的时序问题。

对于各种服务,类似好友、战斗匹配而言,都不能出现单点。每种服务都是由多进程协同组成功能集群,功能集群对外提供高并发服务。集群服务进程可以用一致性hash规则来选择。