你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Cosmos DB 进行游戏开发

Azure 应用服务
Azure Cosmos DB

解决方案构想

本文是一种解决方案构想。 如果你希望我们在内容中扩充更多信息,例如潜在用例、备用服务、实现注意事项或定价指南,请通过提供 GitHub 反馈来告知我们。

此游戏解决方案构想可弹性缩放数据库,使之适应不可预测的流量突增情况,在全球范围内提供低延迟的多玩家体验。

体系结构

Architecture diagram that shows a gaming solution idea that uses Azure Cosmos DB.

下载此体系结构的 Visio 文件

数据流

  1. Azure 流量管理器将用户的游戏流量路由到 Azure 应用服务、Functions 或容器中承载的应用,并路由到通过 Azure API 网关发布的 API。
  2. Azure CDNAzure Blob 存储中存储的用户提供静态图像和游戏内容。
  3. Azure Cosmos DB 存储用户的游戏状态数据。
  4. Azure Databricks 关联、清理和转换游戏状态数据。
  5. Azure Functions 通过使用 Azure 通知中心处理从 Azure Databricks 派生的见解并将通知推送到移动设备。

组件

此体系结构包括以下组件:

  • Azure 流量管理器是一个基于 DNS 的负载均衡器,它控制不同 Azure 区域中服务终结点的用户流量分配。 在正常运行期间,它将请求路由到主要区域。 如果该区域变得不可用,则流量管理器可以根据需要故障转移到次要区域。

  • Azure API 管理提供安置在游戏 API 前面的在 API 网关。 API 管理还可用于实现重要关注事项,例如:

    • 强制实施用量配额和速率限制
    • 验证 OAuth 身份验证令牌
    • 启用跨域请求 (CORS)
    • 缓存响应
    • 监视和记录请求
  • Azure 应用服务托管 API 应用程序,允许自动缩放和高可用性,无需管理基础结构。

  • Azure CDN 从靠近用户的位置提供静态缓存内容,以便减轻延迟。

  • Azure Blob 存储经过了优化,可以存储大量非结构化数据,例如静态游戏媒体。

  • Azure Cosmos DB 是一项完全托管的 NoSQL 数据库服务,用于生成和现代化可缩放的高性能应用程序。

  • Azure Databricks 是基于 Apache Spark 的分析平台,已针对 Microsoft Azure 云服务平台进行优化。

  • Azure Functions 是无服务器计算选项,可以让应用程序按需运行,不需管理基础结构。

  • Azure 通知中心是一种可大规模缩放的推送通知引擎,用于快速向各种移动设备和平台发送通知。

方案详细信息

可能的用例

此特定方案是基于游戏方案的,适用于游戏开发行业。 设计模式与许多需要处理高流量 Web 调用和 API 请求的行业(例如电子商务和零售应用程序)相关。

后续步骤

查看以下有关 Azure Cosmos DB 的文章:

产品文档:

以下解决方案构想以 Azure Cosmos DB 为主要特色: