Использование Cosmos DB в играх

Приложения API
Cosmos DB

ОбзорOverview

Эта архитектура игровых решений эластично масштабирует базу данных, чтобы обеспечить непредсказуемость нагрузки трафика и обеспечить работу нескольких проигрывателей с низкой задержкой в глобальном масштабе.This gaming solution architecture elastically scales your database to accommodate unpredictable bursts of traffic and deliver low-latency multi-player experiences on a global scale. Этот конкретный сценарий основан на игровом сценарии, но шаблоны проектирования важны для многих отраслей, требующих обработки веб-вызовов с большим трафиком и запросов API, таких как электронные и коммерческие приложения.This specific scenario is based on a gaming scenario, but the design patterns are relevant for many industries requiring the process high-traffic web calls and API requests such as e-commerce and retail applications.

ArchitectureArchitecture

Схема архитектуры . Скачайте SVG этой архитектуры.Architecture Diagram Download an SVG of this architecture.

Поток данныхData Flow

  1. Диспетчер трафика Azure направляет игровой трафик пользователя в приложения, размещенные в службе приложений Azure, в функциях, контейнерах и API-интерфейсах, опубликованных через шлюз API Azure.Azure Traffic Manager routes a user's game traffic to the apps hosted in Azure App Service, Functions or Containers and APIs published via Azure API Gateway.
  2. Azure CDN обслуживает статические изображения и содержимое игр для пользователя, хранящегося в хранилище BLOB-объектов Azure.Azure CDN serves static images and game content to the user that are stored in Azure Blob Storage.
  3. Azure Cosmos DB сохраняет данные о состоянии игры пользователя.Azure Cosmos DB stores user's game state data.
  4. Azure Databricks сопоставляет данные состояния игры, очищает и преобразует их.Azure Databricks correlates, cleanses and transforms game state data.
  5. Функция Azure обрабатывает аналитические данные, полученные из Azure Databricks и отправляет уведомления с помощью центров уведомлений Azure на мобильные устройства.Azure Functions processes the insights derived from Azure Databricks and pushes notifications using Azure Notification Hubs to mobile devices.

КомпонентыComponents

Эта архитектура включает в себя следующие компоненты:This architecture includes the following components:

  • Диспетчер трафика Azure — это балансировщик нагрузки на основе DNS, который управляет распределением пользовательского трафика для конечных точек службы в разных регионах Azure.Azure Traffic Manager is a DNS-based load balancer that controls the distribution of user traffic for service endpoints in different Azure regions. При обычной работе он направляет запросы в основной регион.During normal operations, it routes requests to the primary region. Если этот регион становится недоступным, диспетчер трафика может выполнить отработку отказа в дополнительный регион по мере необходимости.If that region becomes unavailable, Traffic Manager can fail over to secondary region as needed.

  • Служба управления API Azure предоставляет шлюз API, который располагается перед игровыми API.Azure API Management provides an API gateway that sits in front of the Gaming APIs. Управление API также используется для реализации таких проблем:API Management also be used to implement concerns such as:

    • Принудительное применение квот потребления и ограничений скорости.Enforcing usage quotas and rate limits
    • Проверка токенов OAuth для аутентификации.Validating OAuth tokens for authentication
    • Включение запросов независимо от источника (CORS).Enabling cross-origin requests (CORS)
    • Кэширование ответов.Caching responses
    • Мониторинг и ведение журнала запросов.Monitoring and logging requests
  • Служба приложений Azure размещает приложения API, позволяющие выполнять Автомасштабирование и высокий уровень доступности без необходимости управлять инфраструктурой.Azure App Service hosts API applications allowing autoscale and high availability without having to manage infrastructure.

  • Azure CDN. Для уменьшения задержки предоставляет статическое, кэшированное содержимое из близких к пользователям расположений.Azure CDN delivers static, cached content from locations close to users to reduce latency.

  • Хранилище BLOB-объектов Azure оптимизировано для хранения больших объемов неструктурированных данных, например статических игровых носителей.Azure Blob Storage are optimized to store large amounts of unstructured data, such as static gaming media.

  • Azure Cosmos DB — это полностью управляемая служба базы данных NoSQL для создания и модернизации масштабируемых и высокопроизводительных приложений.Azure Cosmos DB is a fully managed NoSQL database service for building and modernizing scalable, high performance applications.

  • Azure Databricks — это платформа аналитики на основе Apache Spark, оптимизированная для платформы облачных служб Microsoft Azure.Azure Databricks is an Apache Spark-based analytics platform optimized for the Microsoft Azure cloud services platform.

  • Функции Azure — это бессерверные параметры вычислений, которые позволяют приложениям выполняться по требованию без необходимости управлять инфраструктурой.Azure Functions are serverless compute options that allow applications to run on-demand without having to manage infrastructure.

  • Центры уведомлений Azure — это Высокомасштабируемая подсистема push-уведомлений для быстрой отправки уведомлений на различные мобильные устройства и платформы.Azure Notification Hubs is a massively scalable push notification engine for quickly sending notifications to variety of mobile devices and platforms.