防DDOS攻击 防DDOS攻击


经典解决方案

棋牌游戏服务器架构: 部署

发布于:2018-09-05 15:46来源: 作者:admin 点击:

首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏。

      在研究其服务器框架后发现,它的网络部分确实是比较优化的。它主要采用了Windows提供的IO完成端口来实现其网络组件。本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。这个架构延续了网狐棋牌在网络组件所作的努力,这个棋牌的服务器也使用异步IO作为网络的工作方式,更为彻底的是其数据库也是采用异步架构。boost::asio提供了一个异步框架,所以它的几个核心组件: TCPServerService, TimerService, DatabaseService, AsyncService中都可以看到boost::asio的影子。

,  图1是总体架构图。从图上我们看到服务器的整体架构分为三层:Libraries, Core和Applications。Core层基于Libraries实现,而Applications使用Core层提供的服务,并且要监听Core层的异步事件(Socket、Database等)。

 
      在这个部署中有1个CenterServer,1个LogServer,3个LogonServer和很多个RoomServer(只显示了德州扑克的两个房间)。这些Server有可能分布在同一台机器上,也可以分布在不同的机器之上。这对扩容来说是极为方便地。在玩家数量增大,系统不足以承载其网络负载时,只需要买更多的机器,架设更多的RoomServer或者LogonServer就行了。
 
     这里再分析一下一个中心服务器最多可支持多少玩家同时在线。假定1台机器最多可以有5000个连接,也就是说我给可买5000个机器作为LogServer + RoomServer, LogServer的数目不会太多,可以忽略,所以最多有RoomServer可以管理最多5000X5000个用户同时在线。
 
1布署数据库
 
      选定作为数据库服务器的机器以后,要先安装postgresql数据库,然后导入ServerInfoDB(CenterServer使用), UserInfoDB(LogonServer、RoomServer、LogServer使用),UserScoreDB(RoomServer使用),还有有关各个游戏逻辑的数据库,比如TexasPokerDB等等。这些数据库不一定要放在一台机器上,可以布置在不同的机器上,因为本架构是支持分布式数据库的,你只要记住每个数据库所在机器的
 
2启动服务器
 
2.1 启动CenterServer
 
      首先要修改中心服务器配置,主要包括两个方面的配置:­网络配置和数据库配置。
 
      网络配置包括: 监听端口、最大连接数。这里的最连接数它的是最多支持多少个LogonServer + RoomServer。因为只有这两种Server会连接CenterServer。
 
      数据库配置包括:ServerInfoDB所在机器的IP地址,端口号,连接要用的用户名和密码
 
      配置好以后,就可以直接启动中心服务器了,中心服务器会根据这些配置信息来管理游戏列表,房间列表等信息。
 
 2.2 启动LogonServer
 
      第一步也是配置服务器,主要的配置信息为:
 
      网络配置: 监听端口和最大连接数。 这里的最连接数控制这个LogonServer最多同时支持多少人同时登录。
 
      数据库配置:主要是配置UserInfoDB的地址,端口连接所用的用户名和密码。
 
      CenterServer相关配置: 主要有中心服务器所在IP,端口。需要CenterServer的相关信息是因为LogonServer会定时地从CenterServer中更新游戏列表和房间信息。
 
      配置好以后就可以启动LogonServer了。
 
2.3 启动LogServer
 
      这个服务器做的工作比较简单,就是处理玩家的查看游戏过程用的。主要有以下配置项:
 
      网络配置: 监听端口和最大连接数。 
 
      数据库配置: GameLogDB所在的IP,端口,连接所用的用户名和密码
 
      配置好以后启动即可。
 
2.4 配置RoomServer
 
      玩家的大部分操作都是由这种服务器来响应,启动一个RoomServer实例相当于开启一个新的房间,所以要扩容,基本上只需要增加机器并开启更多的RoomServer即可,其配置包括:
 
      房间基本信息: 房间类型(vip房间,比赛房间,普通房间等), 桌子数,每个桌子的椅子数等等。
 
      网络配置: 监听端口和最大连接数。这个最大连接数就是本房间最多支持多少玩家同时在线玩游戏。
 
      数据库配置: 包括UserInfoDB,具体游戏的DB(比如TexasPokerDB)的地址,端口,以及用户名和密码。
 
      CenterServer相关配置:这个配置和LogonServer一样,需要这个配置也是因为RoomServer会定时地从     CenterServer中更新游戏列表和房间信息发送给客户端。
 
     最后启动这个房间。在配置房间以后,玩家就可以通过客户端或者网页进行游戏了。
 
 
tag标签:
------分隔线----------------------------
------分隔线----------------------------
[相关文章]
    • 24小时技术QQ:1767559921 24小时技术电话:13221000030
    • 公司总台电话:400-901-5608 售前咨询热线:0731-85380877
    小蚁网络-小小 小蚁网络-马马 小蚁网络-蚁蚁 小蚁网络-杨过 小蚁网络-anyyx 小蚁网络-奕奕 小蚁网络-令狐冲 小蚁网络-东邪 小蚁网络-富富 小蚁网络-鬼脚七 小蚁网络-三丰 小蚁网络-风清扬 小蚁网络-技术 投诉与建议

    投诉QQ :512360903
    非法信息举报 :[email protected]
    24小时网维支持 投诉与建议
    故障申报、处理
    24小时技术 24小时网管 企业技术支撑
    域名白名单、信息安全、备案咨询
    白名单审核周一至周六8:30-21:00 周日8:30-18:00 备案专员周一至周五8:30-18:00
    财务续费、发票
    财务续费直线:18073151018