百万级并发在线游戏弹性云架构
1. 用途和受众
1.1 预期用途
指导华为云上面向百万级玩家并发的在线游戏弹性架构设计和开发。
为售前、解决方案设计、实施和审查提供可重用的架构模式。
作为解决方案手册、交付包或实际部署的架构基础。
定义安全性、可靠性、性能、成本、运营和合规性护栏。
1.2 目标受众
华为云 ECS 用户和弹性伸缩 AS 实践者;
游戏工作室的服务端架构师和在线游戏运维团队;
需要为手游或在线游戏构建支持百万级并发、流量峰值自动弹性扩缩容的高可用后端技术团队;
关注多可用区容灾和分层安全隔离、希望实现单机房故障自动切换且玩家无感知的游戏基础设施管理者。
2. 参考架构概述
2.1 架构描述
这是一个面向移动和在线游戏的高可用、可扩展、弹性云架构,专为支持百万级玩家并发而设计。架构采用多层分离设计,从 DNS 解析、内容分发、负载均衡到计算、缓存、数据库和消息通知,全链路支持自动伸缩和多可用区容灾。游戏服务器像弹簧一样——玩家多时自动扩容,玩家少时自动缩容,只为实际使用的资源付费。数据库采用主备多可用区,即使整个机房故障也能自动切换,玩家几乎无感知。
2.2 业务背景
| 项目 | 描述 |
|---|---|
| 业务问题 | 热门游戏上线时流量瞬间飙升百倍,传统自建机房要么提前囤大量服务器(平时浪费),要么扛不住峰值(玩家流失);单机房故障即宕机;CDN 需自建或高价购买 |
| 期望的结果 | 弹性伸缩按需扩缩容,只为实际使用的资源付费;多可用区主备自动容灾切换;云原生 CDN 全球分发;托管缓存和数据库免运维 |
| 主要用户 | 移动/PC/主机玩家(百万级并发)、游戏运营团队 |
| 关键制约因素 | 百万级并发对计算和数据库的极端压力要求;多平台推送通知兼容性(Apple/Google/Amazon/Windows);低延迟全球分发需求 |
| 成功指标 | 峰值流量自动扩容无感知;单机房故障自动切换零中断;数据库迁移后成本降低 2-3 倍;玩家就近获取素材降低延迟 |
2.3 架构优点
| 优点 | 描述 |
|---|---|
| 弹性伸缩 | Web 服务器和应用服务器均使用弹性伸缩组,根据实时流量自动扩缩容,只为实际使用的资源付费——玩家高峰期自动扩容,低谷期自动缩容 |
| 多可用区容灾 | 所有关键组件(Web服务器、应用服务器、Redis缓存、GaussDB数据库)均跨多个可用区部署,单机房故障不影响服务连续性 |
| 分层安全隔离 | VPC 划分公有子网(Web 层)和私有子网(应用层+数据层),NAT 网关控制出站流量,内部 ELB 隔离应用层,形成纵深防御 |
| 读写分离与缓存加速 | DCS Redis 缓存热点数据减少数据库压力,GaussDB 主备+读副本实现读写分离,GeminiDB 处理 NoSQL 高速读写场景 |
| 全球内容加速 | CDN + OBS 组合实现静态游戏资源的全球分发,玩家就近获取素材和 DLC,大幅降低延迟 |
| 托管免运维 | 缓存(DCS)和数据库(GaussDB/GeminiDB)均为全托管服务,无需自建和运维,降低运维成本 |
2.4 设计关注点
| 效益 | 架构如何实现它 | 测量 |
|---|---|---|
| 安全与合规 | VPC 隔离公有/私有子网,NAT 网关控制出站流量,内部 ELB 隔离应用层;IAM 统一身份认证管理所有云资源权限 | 编译环境不暴露公网;权限最小化覆盖 |
| 可靠性和弹性 | 所有关键组件跨多可用区部署;DCS Redis 多AZ主备自动容灾恢复;GaussDB 主备多AZ支持最多 15 个读副本 | 单机房故障自动切换;RPO≈0 |
| 性能和可扩展性 | 弹性伸缩组按实时流量自动扩缩容;CDN 全球分发加速静态内容;GeminiDB 提供可预测的低延迟 NoSQL 读写 | 百万级并发无降级;延迟 < 阈值 |
| 成本效益 | 按需扩缩容只为实际使用资源付费;托管服务免自建机房投入;GaussDB 迁移后成本降低 2-3 倍 | 成本 vs 自建方案降低比例 |
| 卓越运营 | CES 云监控所有服务运行状态并提供告警;SMN 全托管推送通知开箱即用支持多平台 | 监控覆盖率 100%;告警响应时间 |
| 交付敏捷性 | 全托管服务减少运维投入;弹性伸缩自动化扩缩容无需人工干预;CDN 全球分发无需自建 | 新游戏上线周期;运维人力降低 |
2.5 典型架构
典型架构图
| 层级 | 色系 | 包含服务 |
|---|---|---|
| 外部系统 / 玩家 | 橙色 | 玩家 (Internet) — 移动/PC/主机玩家 |
| DNS & 内容分发层 | 蓝色 | DNS(云解析服务)、CDN(内容分发网络)、OBS(对象存储服务) |
| 网络接入与负载均衡层 | 蓝色 | VPC(虚拟私有云)、ELB(弹性负载均衡)、NAT网关 |
| Web计算层(公共子网·多AZ) | 蓝色 | ECS(Web服务器)、AS(弹性伸缩) |
| 应用计算层(私有子网·多AZ) | 蓝色 | ECS(应用服务器)、ELB内部(内网负载均衡) |
| 缓存与数据库层 | 蓝色 | DCS(Redis缓存主备)、GaussDB(关系数据库主备)、GeminiDB(NoSQL文档数据库) |
| 消息通知层 | 蓝色 | SMN(消息通知服务) |
| 公共服务 | 黄色 | IAM(统一身份认证)、CES(云监控服务)、VPC(网络隔离) |
2.6 流程描述
| 步骤 | 流向 | 说明 |
|---|---|---|
| ① | 玩家 → DNS | 玩家通过 DNS 解析访问游戏服务端点 |
| ② | DNS → CDN | DNS 根据延迟/地理位置策略路由到最近 CDN 节点 |
| ③ | CDN → OBS | CDN 从 OBS 获取并缓存静态游戏资源(素材、DLC、日志) |
| ④ | DNS → ELB | 动态请求路由到 ELB 弹性负载均衡 |
| ⑤ | ELB → ECS(Web) | ELB 将流量分发到多可用区的 Web 服务器(ECS + AS 弹性伸缩) |
| ⑥ | ECS(Web) → ECS(App) | Web 服务器经内部 ELB 转发至应用服务器 |
| ⑦ | ECS(App) → DCS | 应用服务器读写 DCS Redis 缓存(多AZ主备) |
| ⑧ | ECS(App) → GaussDB/GeminiDB | 应用服务器读写 GaussDB 关系库和 GeminiDB NoSQL 库 |
| ⑨ | ECS(App) → SMN → 玩家 | SMN 向多平台玩家推送游戏通知 |
2.7 云服务产品清单
| 分类 | 服务或产品 | 推荐配置 |
|---|---|---|
| DNS与内容分发 | DNS(云解析服务) | 100% SLA,延迟/地理位置路由策略 |
| DNS与内容分发 | CDN(内容分发网络) | 全球分布式缓存,自动就近缓存 |
| DNS与内容分发 | OBS(对象存储服务) | 存储游戏素材、DLC、日志文件,作为 CDN 源站 |
| 网络接入 | VPC(虚拟私有云) | 网络隔离,公有/私有子网,跨多可用区 |
| 网络接入 | ELB(弹性负载均衡) | 外部流量负载均衡,SSL 终止,自动伸缩 |
| 网络接入 | NAT网关 | 私有子网访问互联网,阻止外部直接访问 |
| 计算 | ECS(弹性云服务器)— Web 服务器 | 公共子网,多可用区,弹性伸缩组 |
| 计算 | ECS(弹性云服务器)— 应用服务器 | 私有子网,多可用区,与 Web 层分离 |
| 计算 | AS(弹性伸缩) | 根据流量自动扩缩容,跨多可用区 |
| 缓存与数据库 | DCS(分布式缓存服务Redis版) | 全托管 Redis,多AZ主备,读副本弹性扩展 |
| 缓存与数据库 | GaussDB(云数据库) | MySQL 兼容,主备多AZ,最高 64TB,最多 15 个读副本 |
| 缓存与数据库 | GeminiDB(云数据库) | 高速低延迟托管 NoSQL 文档数据库,无限扩展 |
| 消息通知 | SMN(消息通知服务) | 全托管推送,支持 Apple/Google/Amazon/Windows |
| 安全 | IAM(统一身份认证) | 身份认证与访问控制,管理所有云资源权限 |
| 运营 | CES(云监控服务) | 监控所有云服务运行状态,提供告警通知 |
3. 参考链接
产品文档
实施指南:
源代码或 IaC:
操作手册:
安全性和合规性映射:
4. 使用限制
本架构面向百万级玩家并发的在线游戏场景,适用于移动游戏、PC 游戏和主机游戏。
弹性伸缩策略需根据实际流量模型调优,避免频繁扩缩容导致服务抖动。
GaussDB 最多支持 15 个读副本,超大规模场景需考虑分库分表方案。
GeminiDB 适用于 NoSQL 高速低延迟场景,关系型数据建议使用 GaussDB。
SMN 推送通知支持 Apple、Google、Amazon 和 Windows 平台,其他平台需自定义集成。
多可用区部署需确保所在 Region 至少有 2 个可用区。
附录 A. 术语和缩略语
| 术语 | 定义 |
|---|---|
| DNS | 云解析服务,提供 100% SLA 的 DNS 解析 |
| CDN | 内容分发网络,全球分布式缓存加速 |
| OBS | 对象存储服务,存储游戏素材、DLC、日志 |
| VPC | 虚拟私有云,提供网络隔离环境 |
| ELB | 弹性负载均衡,外部流量负载均衡 |
| NAT | 网络地址转换网关,私有子网访问互联网 |
| ECS | 弹性云服务器,运行 Web 和应用服务 |
| AS | 弹性伸缩,自动扩缩容实例数量 |
| DCS | 分布式缓存服务 Redis 版,全托管 Redis 缓存 |
| GaussDB | 云数据库,MySQL 兼容关系数据库 |
| GeminiDB | 云数据库,高速低延迟 NoSQL 文档数据库 |
| SMN | 消息通知服务,多平台推送通知 |
| IAM | 统一身份认证,身份认证与访问控制 |
| CES | 云监控服务,监控与告警 |
| AZ | 可用区,同一 Region 内的独立故障域 |
- 点赞
- 收藏
- 关注作者
评论(0)