作为一个网络游戏,虽然目前游戏内的许多设定我们还在补充,我们抛开江湖X的游戏业务层面的设计,纯介绍一下江湖X的服务器技术框架。

先简单介绍一下几个核心技术点:

  • 江湖X是一个基于长连接的网络游戏
  • 江湖X运维托管依赖于公有云环境,当然,也可以独立部署
  • 江湖X支持一部分非核心代码的热更新
  • 江湖X的设计目标为同服容纳同时在线数千玩家,容纳百万级玩家信息
  • 能做到10秒级的全服/单个账号精确回档

再说一下开发基础和选型原因:

我们工作室人丁稀少,而且也非纯技术向定位(我们都一起做策划、运营、运维甚至是美工、音乐啦)……之前也没有游戏行业的代码积累,所以我们大部分东东能用开源的就用,能用付费的也用。一切的核心为的是提高生产效率、降低工作量、并且提高运维稳定性,当然,也在一定程度上考虑了未来的可扩展性。

下面直接上系统架构图
这里写图片描述

解释:

  • 账号服务器是全局唯一的,一个账号可以登录我们所有的游戏服务器。主要账号登录信息、支付信息、账号登录TOKEN(判断同一账号是否重复登录),采用J2EE开发
  • 游戏服务器使用SCUT编写,与客户端之间通信采用socket长连接,使用C#开发
  • 数据库使用的redis+mysql,所有登录激活的账号才会进入redis,否则数据序列化存在持久化存储里。
  • 数据库使用公有云提供的高可用方案,秒级落盘。所以可以做到秒级回档。
  • WEB服务器挂接了CDN,提供游戏下载、各种活动页面、服务器列表、公告发布等等
  • 聊天、统计和第三方登录/支付、短信服务 均属于外部系统,直接使用的云服务。
  • 客服/GM系统是我们管理员的操作后台,采用PHP编写
  • 公有云我们目前使用阿里云和UCLOUD
  • 聊天服务器使用亲加云通讯
  • 第三方登录/支付包括 支付宝、微信、苹果等
  • 短信服务使用的容联云通讯
  • 统计服务使用的友盟
  • 账号服务器、数据库等均外网隔离
  • 游戏服务器、WEB服务器等均使用云服务器提供的防火墙,并且做了一系列的安全方案

根据测试情况和目前的运营情况,若干结论性的东东分享:

  • SCUT服务端还算稳定,可用。代码没问题的情况下,同一个实例支持几千并发应该比较轻松。
  • redis很强大,但是要注意控制其内存
  • 阿里云服务器的磁盘读写性能很差
  • CDN未必可靠,需要程序支持备份切换方案
  • 目前的公有云环境确实是高可用,基本没有出过什么问题

我接下来的文章将深入到具体的每个模块和逻辑讨论技术细节,有兴趣的同学欢迎与我交流。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐