-
具备容灾能力
- 单点故障时(例如服务器硬件损毁)不能造成数据丢失
- 当出现故障进行修复或维护,要有充分准备的方案,例如主从冷热备份恢复等,使宕机时间可控
- 数据具备缓写机制,避免造成数据库性能瓶颈
- 具备登录排队机制或逐渐递增的重试延迟来预防雪崩效应(用户登录请求量爆发超过阈值时,有登录排队或重试延迟机制)
-
容器部署方案
提供基于Docker的容器化部署方案
-
统一的入口网关Gateway
整体架构支持仅暴露1个公网网关入口,即 1个IP 1个端口(了解原因)。 要求这个网关在需要时可以水平扩展。可以自己开发网关, 也可以使用或基于 心动网络游戏通用网关
-
所有对外开放的端口都有提供健康监测的方法
包括TCP,并能区分显示 pretransfer/starttransfer/total time
-
不依赖HTTP X-Forwarded-For 或TCP连接的对端IP地址来工作或统计
使用类似 MyIP服务 来由客户端获取自己公网IP后上传给服务端。服务端应该允许客户端IP异步上传,而不是登录和进入游戏的必要条件。
-
连接网络入口均有fallback机制并使用备用域名
备用连接方案可以是: 使用HTTPDNS或提供类似地址查询服务来确保客户端获得正确所有网络入口IP 当DNS被污染或其他原因没有及时生效时,使用HTTPDNS或类似方式让客户端获得正确的服务端IP 可以使用aliyun提供的httpdns服务。
也可以是入口网关提供备用域名(或IP)入口,当原连接域名被攻击时,可以使用备用的位于高防IP上的入口。 备用域名(或IP)固化在客户端,当通过HTTPDNS方式仍无法取到正确域名时,使用备用域名(或IP)连接。
-
主要货币使用 64 bits 记录
-
定期的数据库备份和快照
至少每个月有一份完整的数据库备份或关键数据快照(所有玩家对应的经验、元宝、装备信息)。 并存放在持久化的存储系统中,例如阿里云的OAS。
-
有客户端通讯延迟统计和来源IP记录
需要可以区分tcp建立连接的时间,服务端计算信息,和服务端返回的具体错误。以便分析和优化线路质量。
-
有服务端性能日志
特别是各类请求对应的处理消耗时间记录。用于优化负载能力,若版本不稳定可后迅速反应。
-
准备上架应用宝的游戏需要部署到腾讯云
-
有 CrashDump 和分析能力
-
无可导致全平台无法提供服务的单点故障源
-
具备可靠的压力测试方案并进行充分的测试
-
元宝等重要货币可以被扣成负数
- 参考 心动网络游戏安全评议要点