Общие сведения о выделенном шлюзе Azure Cosmos DB
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Выделенный шлюз — это вычислительный ресурс, который выполняет роль серверной стороны для учетной записи Azure Cosmos DB. При подключении к выделенному шлюзу он направляет запросы и кэширует данные. Как и подготовленная пропускная способность, выделенный шлюз оплачивается за каждый час.
Обзор
Вы можете подготавливать выделенный шлюз для повышения производительности в большом масштабе. Наиболее распространенной причиной, по которой вам может понадобиться выделенный шлюз, является кэширование. При подготовке выделенного шлюза интегрированный кэш автоматически настраивается в выделенном шлюзе. Точки чтения и запросы, которые попали в интегрированный кэш, не используют ни одного из единиц RUS. Подготовка выделенного шлюза с помощью встроенного кэша может помочь сократить затраты на рабочие нагрузки с большим объемом чтения в 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, но запросы направляются аналогичным образом. При подключении к конечной точке выделенного шлюза приложение отправляет запрос выделенному шлюзу, который затем направляет запрос на различные серверные узлы. По возможности интегрированный кэш служит результатом.
Схема подключения в режиме шлюза с выделенным шлюзом.
Подготовка выделенного шлюза
Выделенный кластер шлюза можно подготовить в API для учетных записей NoSQL. В кластере выделенного шлюза может по умолчанию содержаться до пяти узлов, и в любое время можно добавлять или удалять узлы. Все узлы выделенного шлюза в учетной записи используют одну и ту же конечную точку выделенного шлюза.
Узлы выделенного шлюза независимы друг от друга. При подготовке нескольких узлов выделенного шлюза любой отдельный узел может маршрутизировать заданный запрос. Кроме того, каждый узел имеет отдельный от других интегрированный кэш. Кэшированные данные в каждом узле зависят от данных, которые были недавно записаны или считаны этим конкретным узлом. Если элемент или запрос кэшируется на одном узле, он необязательно кэшируется на других узлах.
Для разработки мы рекомендуем начать с одного узла, но в рабочей среде следует подготавливать для обеспечения высокой доступности три или более узлов. Узнайте, как подготавливать кластер выделенного шлюза с интегрированным кэшем. Подготовка нескольких узлов выделенного шлюза позволяет кластеру выделенного шлюза продолжать маршрутизировать запросы и обслуживать кэшированные данные, даже если один из узлов выделенного шлюза недоступен.
Выделенный шлюз доступен в следующих размерах. Интегрированный кэш использует приблизительно 50 % памяти, остальная часть резервируется для метаданных и направления запросов к разделам серверной части.
Имя SKU | Виртуальные ЦП | Память |
---|---|---|
D4s | 4 | 16 ГБ |
D8s | 8 | 32 ГБ |
D16s | 16 | 64 ГБ |
Совет
После создания вы сможете добавлять или удалять узлы выделенного шлюза, но не сможете изменять их размер. Чтобы изменить размер узлов выделенного шлюза, можно отозвать кластер и повторно его подготовить с другим размером. Это приведет к короткому периоду простоя, если вы не измените конечную точку в приложении, чтобы использовать стандартный шлюз во время повторной подготовки.
Выделенный шлюз можно предоставить множеством разных способов.
- Подготовка выделенного шлюза с помощью портал Azure
- Использование REST API Azure Cosmos DB
- Azure CLI
- Шаблон ARM
- Примечание. Вы не можете отменить подготовку выделенного шлюза с помощью шаблонов ARM
Примечание.
Вы можете подготовить выделенный шлюз в учетных записях Azure Cosmos DB с зонами доступности по запросу. Дополнительные сведения см. здесь: cosmoscachefeedback@microsoft.com.
Выделенный шлюз в учетных записях с несколькими регионами
При подготовке кластера выделенного шлюза в учетных записях с несколькими регионами в каждом регионе подготавливаются идентичные кластеры выделенного шлюза. Например, рассмотрим учетную запись Azure Cosmos DB со следующими регионами — восточная часть США и Северная Европа. Если вы подготавливаете кластер выделенного шлюза с двумя узлами D8 в этой учетной записи, у вас будет всего четыре узла D8 — два в восточной части США и два в Северной Европе. Вам не нужно явно настраивать выделенные шлюзы в каждом регионе, а конечная точка выделенного шлюза остается одинаковой. Также нет изменений в рекомендациях по выполнению отработки отказа.
Как и узлы в кластере, узлы выделенного шлюза в разных регионах независимы. Возможно, кэшированные данные в каждом регионе отличаются в зависимости от последних операций чтения или записи в этом регионе.
Ограничения
Выделенные шлюзы поддерживаются только в учетных записях API или NoSQL.
Следующие шаги
Дополнительные сведения об использовании выделенного шлюза см. в следующих статьях.
- Интегрированный кэш
- Настройка интегрированного кэша
- Вопросы и ответы по интегрированному кэшу
- Если вы планируете ресурсы для миграции в Azure Cosmos DB, Для планирования ресурсов можно использовать сведения об имеющемся кластере базы данных.
- Если вам известно только количество виртуальных ядер и серверов в существующем кластере баз данных, см. сведения об оценке единиц запросов на основе виртуальных ядер и серверов.
- Если вам известна стандартная частота запросов для текущей рабочей нагрузки базы данных, ознакомьтесь со статьей о расчете единиц запросов с помощью планировщика ресурсов Azure Cosmos DB