GOGO 软件工作室
1
棋牌类游戏服
分布式架构设计
(Ver 1.0)
一、棋牌游戏服务器的特点
1,棋牌类不分区不分服
一般来说,棋牌游戏都是不分区不分服的。所以棋牌类服务器要满足随
着用户量的增加而扩展的需要,仅增加房间服和大厅服即可。
2,房间模式
即在同一局游戏中就是在同一个房间中,同一个房间中的人可以接收到
其他人的消息。
3,每个房间的操作必须是顺序性
这个特性类似与一般游戏的回合制,每个玩家的操作都是有顺序性的。
二、需要解决的技术点
1,数据共享
因为棋牌类游戏不分区不分服,我们在设计服务器的时候,是按世界服
的思想去设计,即服务器是一个 n 多台物理机的集群。当用户登陆服务器,
进入游戏大厅,创建房间时,根据负载均衡算法,它可以在任何一台服务器
上面,并保证位置唯一。所以,不管用户登陆到哪一台服务器上面了,都可
以获得自己的数据。我们采用使用 redis 来做玩家数据共享,分为主从库,
主库用于游戏中使用,从库用于第 3 方后台及普通查询;
在玩家登录服验证成功后,将生成 gametoken,写入 redis 缓存,在登录
服,大厅服和房间服中共享,通过 gametoken 来验证连接和重连的合法性。