《棋牌游戏服务器》总体架构设计

目前几个产品在服务端的总体架构都是类似的,如下图;由于历史原因,在不同的产品里面,各类服务器具体的名字可以有所差异:

  

 

主站和榜单

左上方是http通信的服务器,有两个服务,一个是主站(承载的客户端登录、支付,以及部分运营推广的功能);一个是榜单服务器,不断刷新各类榜单,并直接为客户端提供服务。

网关和玩法

左下方是网关服务器,负责与客户端的socket通信,背后是各种玩法服务器,以及大厅。 玩法服务器就是提供给类玩法的,比如斗地主、捕鱼、炸金花等;在老的棋牌产品里面,每个玩法会独占一台服务器;在新的麻将产品里面,已经改造成插件式的。

大厅

大厅服务器是从主站里面剥离出来的,把和游戏主体部分,和玩法无关的功能放到了大厅里面,比如用户的信息、签到、邮件等等;一方面简化主站,另一方面通过socket通信速度也更快一些。

大厅是一个“半有状态”服务,一方面大厅会在内存里面缓存一些用户信息,另一方面也可以随时重启,能够自动重建这些缓存。

存储

右侧是我们目前使用的两种存储方式,数据库mysql,缓存redis;持久化数据都是放在mysql里面的,redis是一个高速缓存备份。

目前我们没有独立的存储服务,各个功能模块会直接访问redis和mysql,并负责两者之间的同步,这可以算是当前架构的一个缺陷,所以开发人员要特别注意这一点,做好redis数据的过期以及读写优化。

但是建立独立的存储服务器,也有一个隐患,因为棋牌是不分服,一旦用户量多了,redis可以扩展为集群,存储服务器要自建集群的话,难度可能较大。

总体上存储这块的设计目前可用,但不够好。

 

 

 

转载于:https://www.cnblogs.com/longhuihu/p/10423583.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值