Skip to content

Latest commit

 

History

History
63 lines (37 loc) · 2.83 KB

backend.md

File metadata and controls

63 lines (37 loc) · 2.83 KB

心动网络游戏后端评审要点

  • 具备容灾能力

    • 单点故障时(例如服务器硬件损毁)不能造成数据丢失
    • 当出现故障进行修复或维护,需要充分的机制例如主从冷热备份恢复等,使宕机时间可控
    • 数据具备缓写机制,避免造成数据库性能瓶颈
    • 具备登录登录排队机制或逐渐递增的重试延迟来预防雪崩效应(用户登录请求量爆发超过阈值时,有登录排队或重试延迟机制)
  • 容器部署方案

    提供基于Docker的容器化部署方案

  • 统一的入口网关Gateway

    整体架构支持仅暴露1个公网网关入口,即 1个IP 1个端口(了解原因)。 要求这个网关在需要时可以水平扩展。可以自己开发网关, 也可以使用或基于 心动网络游戏通用网关

  • 所有对外开放的端口都有提供健康监测的方法

    包括TCP,并能区分显示 pretransfer/starttransfer/total time

  • 不依赖HTTP X-Forwarded-For 或TCP连接的对端IP地址来工作或统计

    使用类似 MyIP服务 来由客户端获取自己公网IP后上传给服务端。服务端应该允许客户端IP异步上传,而不是登录和进入游戏的必要条件。

  • 使用HTTPDNS或提供类似地址查询服务来确保客户端获得正确所有网络入口IP

    当DNS被污染或其他原因没有及时生效时,使用HTTPDNS或类似方式让客户端获得正确的服务端IP 可以使用aliyun提供的httpdns服务

  • 连接网络入口均有fallback机制并使用备用域名

    入口网关提供备用域名(或IP)入口,当原连接域名被攻击时,可以使用备用的位于高防IP上的入口。 备用域名(或IP)固化在客户端,当通过HTTPDNS方式仍无法取到正确域名时,使用备用域名(或IP)连接。

  • 定期的数据库备份和快照

    至少每个月有一份完整的数据库备份或关键数据快照(所有玩家对应的经验、元宝、装备信息)。 并存放在持久化的存储系统中,例如阿里云的OAS。

  • 有客户端通讯延迟统计和来源IP记录

    需要可以区分tcp建立连接的时间,服务端计算信息,和服务端返回的具体错误。以便分析和优化线路质量。

  • 有服务端性能日志

    特别是各类请求对应的处理消耗时间记录。用于优化负载能力,若版本不稳定可后迅速反应。

  • 有 CrashDump 和分析能力

  • 无可导致全平台无法提供服务的单点故障源

  • 具备可靠的压力测试方案并进行充分的测试

  • 元宝等重要货币可以被扣成负数

  • 使用64bit编译

    具备超过3G内存的管理能力

安全