Общие сведения о выделенном шлюзе Azure Cosmos DB

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

Выделенный шлюз — это вычислительный ресурс, который выполняет роль серверной стороны для учетной записи Azure Cosmos DB. При подключении к выделенному шлюзу он направляет запросы и кэширует данные. Как и подготовленная пропускная способность, выделенный шлюз оплачивается за каждый час.

Обзор

Вы можете подготавливать выделенный шлюз для повышения производительности в большом масштабе. Наиболее распространенной причиной, по которой вам может понадобиться выделенный шлюз, является кэширование. При подготовке выделенного шлюза интегрированный кэш автоматически настраивается в выделенном шлюзе. Точечные операции чтения и запросы, которые попадают в интегрированный кэш, не используют единицы запроса. Подготовка выделенного шлюза с интегрированным кэшем может помочь рабочим нагрузкам с большим объемом чтения снизить затраты на Azure Cosmos DB.

Выделенный шлюз встроен в Azure Cosmos DB. При подготовке выделенного шлюза у вас имеется полностью управляемый узел, который направляет запросы к разделам серверной части. Подключение к Azure Cosmos DB с выделенным шлюзом обеспечивает более низкую и предсказуемую задержку, чем подключение к Azure Cosmos DB со стандартным шлюзом. Даже промахи кэша дадут меньшие показатели задержки при сравнении выделенного и стандартного шлюзов.

Для использования выделенного шлюза в приложении необходимо внести лишь минимальные изменения в код. Новые и существующие учетные записи Azure Cosmos DB могут подготавливать выделенный шлюз для повышения производительности чтения.

Примечание

Вы можете рассказать нам, что вы думаете о возможности работы с выделенным шлюзом. Нам очень интересно ваше мнение! Вы можете поделиться им непосредственно с командой разработчиков Azure Cosmos DB по адресу cosmoscachefeedback@microsoft.com.

Режимы подключения

Для Azure Cosmos DB существует два режима подключения: прямой режим и режим шлюза. Режим шлюза позволяет подключаться как к стандартному, так и к выделенному шлюзу в зависимости от настроенной конечной точки.

Схема, на которую показано, как работают режимы подключения Azure Cosmos DB.

Подключение к Azure Cosmos DB с помощью прямого подключения

При прямом подключении к Azure Cosmos DB приложение подключается непосредственно к серверной части Azure Cosmos DB. Даже при наличии большого количества физических разделов маршрутизация запросов обрабатывается полностью на стороне клиента. Прямой режим обеспечивает низкую задержку, так как приложение может напрямую взаимодействовать с серверной частью Azure Cosmos DB и не требует промежуточного прыжка по сети. При подключении в прямом режиме ваши запросы не будут использовать выделенный шлюз или интегрированный кэш.

Подключение к Azure Cosmos DB с помощью режима шлюза

При подключении к Azure Cosmos DB с помощью режима шлюза приложение сначала подключится к клиентскому узлу, который будет обрабатывать маршрутизацию запроса к соответствующим серверным узлам. Так как режим шлюза включает дополнительный сетевой прыжок, при сравнении с режимом прямого подключения может наблюдаться немного более высокая задержка.

При подключении к Azure Cosmos DB в режиме шлюза можно подключиться одним из следующих способов.

  • Стандартный шлюз: в то время как серверная часть, которая включает подготовленную пропускную способность и хранилище, имеет выделенную емкость для каждого контейнера, стандартный шлюз совместно используется многими учетными записями Azure Cosmos DB. Для многих клиентов удобно совместно использовать стандартный шлюз, так как вычислительные ресурсы, потребляемые каждым клиентом, невелики.
  • Выделенный шлюз: в этом шлюзе и серверная часть, и шлюз имеют выделенную емкость. Для интегрированного кэша требуется выделенный шлюз, так как он требует значительного объема ЦП и памяти, относящихся к вашей учетной записи Azure Cosmos DB.

Чтобы использовать интегрированный кэш, необходимо подключиться к Azure Cosmos DB с помощью выделенного шлюза. У выделенного шлюза, в отличие от стандартного, имеется другая конечная точка, предоставленная учетной записью Azure Cosmos DB, но запросы направляются аналогичным образом. При подключении к конечной точке выделенного шлюза приложение отправляет запрос выделенному шлюзу, который затем направляет запрос на различные серверные узлы. По возможности интегрированный кэш обеспечит подачу результата.

Схема подключения в режиме шлюза с выделенным шлюзом.

Схема работы выделенного шлюза Azure Cosmos DB.

Подготовка выделенного шлюза

Выделенный кластер шлюза можно подготовить в API для учетных записей NoSQL. В кластере выделенного шлюза может по умолчанию содержаться до пяти узлов, и в любое время можно добавлять или удалять узлы. Все узлы выделенного шлюза в вашей учетной записи совместно используют одну и ту же строку подключения.

Узлы выделенного шлюза независимы друг от друга. При подготовке нескольких узлов выделенного шлюза любой отдельный узел может маршрутизировать заданный запрос. Кроме того, каждый узел имеет отдельный от других интегрированный кэш. Кэшированные данные в каждом узле зависят от данных, которые были недавно записаны или считаны этим конкретным узлом. Если элемент или запрос кэшируется на одном узле, он необязательно кэшируется на других узлах.

Для разработки мы рекомендуем начать с одного узла, но в рабочей среде следует подготавливать для обеспечения высокой доступности три или более узлов. Узнайте, как подготавливать кластер выделенного шлюза с интегрированным кэшем. Подготовка нескольких узлов выделенного шлюза позволяет кластеру выделенного шлюза продолжать маршрутизировать запросы и обслуживать кэшированные данные, даже если один из узлов выделенного шлюза недоступен.

Выделенный шлюз доступен в следующих размерах. Интегрированный кэш использует приблизительно 50 % памяти, остальная часть резервируется для метаданных и направления запросов к разделам серверной части.

Имя SKU vCPU Память
D4s 4 16 Гб
D8s 8 32 ГБ
D16s 16 64 ГБ

Совет

После создания вы сможете добавлять или удалять узлы выделенного шлюза, но не сможете изменять их размер. Чтобы изменить размер узлов выделенного шлюза, можно отозвать кластер и повторно его подготовить с другим размером. Чтобы не вызывать кратковременный простой, измените строку подключения в приложении для использования стандартного шлюза во время повторной подготовки.

Выделенный шлюз можно предоставить множеством разных способов.

Примечание

Вы можете подготовить выделенный шлюз в учетных записях Azure Cosmos DB с зонами доступности по запросу. Дополнительные сведения см. здесь: cosmoscachefeedback@microsoft.com.

Выделенный шлюз в учетных записях с несколькими регионами

При подготовке кластера выделенного шлюза в учетных записях с несколькими регионами в каждом регионе подготавливаются идентичные кластеры выделенного шлюза. Например, рассмотрим учетную запись Azure Cosmos DB со следующими регионами — восточная часть США и Северная Европа. Если вы подготавливаете кластер выделенного шлюза с двумя узлами D8 в этой учетной записи, у вас будет всего четыре узла D8 — два в восточной части США и два в Северной Европе. Вам не нужно явно настраивать выделенные шлюзы в каждом регионе, и строка подключения остается неизменной. Также нет изменений в рекомендациях по выполнению отработки отказа.

Как и узлы в кластере, узлы выделенного шлюза в разных регионах независимы. Возможно, кэшированные данные в каждом регионе будут отличаться в зависимости от последних операций чтения или записи в этом регионе.

Ограничения

Выделенный шлюз имеет следующие ограничения:

  • Выделенные шлюзы поддерживаются только в API для учетных записей NoSQL.
  • Вы не можете использовать управление доступом на основе ролей (RBAC) для аутентификации запросов плоскости данных, маршрутизируемых через выделенный шлюз

Дальнейшие действия

Дополнительные сведения об использовании выделенного шлюза см. в следующих статьях.