解决方案

最近更新时间:2019-05-24 10:22:55

针对行业需求,腾讯云提出了以云计算为基础的棋牌类游戏解决方案,典型架构如下 :
典型棋牌类游戏架构图

大厅服务器

玩家进入大厅服进行登录、认证、房间管理,支付等平台操作。大厅服在一局棋牌完成之后,收集从房间服上报的玩家胜负场次,等级,金币结算等信息,统计后落地到结构化数据库中。并将个人相关信息返回相应客户端。由于大厅服是全局的,因此对集群的总体承载能力有较高要求。借助 云服务器(Cloud Virtual Machine,简称 CVM)灵活弹性的特点,搭配使用 负载均衡(Cloud Load Balance,简称 CLB)和 弹性伸缩(Auto Scaling,简称 AS),实现业务的高可用和自动水平伸缩,有效降低运营成本。玩家访问量突然增大时,弹性伸缩自动增加大厅服务器实例的数量,快速提升系统负载能力应对压力;访问量减少时,则会自动减少实例数量以节约成本。

访问调度服务器

棋牌盾 IP 部署在了游戏服前端做流量转发。因此对于 IP 池的管理(分配,上下线,状态设置,转发规则等策略)需要有专门的调度服务器负责,确保游戏服保持可访问状态。访问调度服不仅负责策略计算还需要调用 API 和棋牌盾后台进行交互,因此推荐选用计算型 CVM 该服务器来部署,后端搭载 高效云盘 确保高性能 IO 以及数据的高可用性。
访问调度服可在原登录服上进行简单改造。部署三网大带宽IP进行重点防护。由于登录业务对时延要求不高,跨网访问影响不大。另外访问方式建议域名访问,便于极端情况下被黑洞后更换 IP 及 DNS 域名解析。此时在线玩家不受影响,只影响新登录玩家。待 DNS 域名解析全网生效后新玩家可接入。
和客户端交互的服务器均接入了棋牌盾,储备海量 IP 池。单个 IP 具备 5G 的 DDOS 防护带宽。策略服可灵活指定 IP 下发策略,例如根据玩家账号等级或者地域分布分配不同 IP 地址。单个账号只能获取游戏服的单个 IP 地址。即使黑客获取 IP 进行攻击,也只能攻击单独 IP,影响该 IP 所在等级或者地域的玩家游戏访问。而获取不同 IP 地址的玩家业务不受影响。
极端情况即使池子所有 IP 被黑客获取到并轮番攻击导致封堵,棋牌盾还提供三网或者单线 IP 作为保底选择。该线路具备更高的防御带宽,并且价格更低廉。可在增加延迟的有损服务前提下确保业务的可用性。

棋牌房间服集群

用户在处理完平台逻辑之后,开始创建房间或者加入房间。通过访问策略服务器,获取到房间服可用 IP 列表之后分配给玩家。玩家进入棋牌房间开始游戏。房间服可采用多地域部署架构,以便玩家就近接入。为了应对玩家在线数的快速变化,厂商开通过腾讯云控制台或者 API 调用的方式,利用镜像功能快速开合服,确保既不浪费后端资源,又能保证房间活跃度的要求。机型方面,根据业务的具体情况,选用合适的计算型 CVM内存型 CVM 以及标准型 CVM 来满足需求。

数据存储层

玩家在一局棋牌结束之后,其等级信息,场次胜负统计,积分,虚拟币刷新等信息上报至大厅服。大厅服再落地到数据存储层。该层主要负责游戏数据的缓存和持久化,以及历史日志的归档存储。推荐选用 云数据库 Redis云数据库 Memcached 存放缓存数据,选用 云数据库 TencentDB云数据库 MongoDB 持久化数据,选用 归档存储(Cloud Archive Storage,简称 CAS)存放海量的历史日志。TencentDB for MySQL 最高 QPS 可达到 240000+,轻松应对高读写量需求。同时 TencentDB 实时双机热备,秒级切换,可支持 3 日内任意时间点回档。

运营平台

大厅服也可异步将游戏日志和报告导入运营平台进行大数据分析和日常运营的统计分析所用。
推荐选用 弹性 MapReduce大数据处理套件 TBDS数据工坊 TDF 等服务进行大数据的分析展示,选用 蓝鲸 BLUEKING 实现运维自动化。

游戏服务 PaaS 平台

使用成熟的第三方组件可以让游戏研发事半功倍。腾讯云提供了丰富的组件服务,如 游戏多媒体引擎 GME手游测试 WeTest全球应用加速 GAAP小游戏联机对战引擎 MGOBE智营网优 INO 等, 从多个方面帮助开发者解决痛点问题。

内容加速

客户端资源包快速分发对于游戏推广至关重要。腾讯 CDN 依托自身丰富的经验,对游戏类业务支撑有独特的解决方案。可针对客户业务场景定制优化策略,如 HTTP 压缩、中间源减压、预拉热等,降低客户的流量成本,减少传输延迟。