Как масштабировать экземпляр службы Azure SignalR?

В этой статье показано, как масштабировать экземпляр службы Azure SignalR. Существует два сценария масштабирования: вертикальное и горизонтальное масштабирование.

  • Увеличение масштаба: получение дополнительных единиц, подключений, сообщений и т. д. Вы масштабируете, изменив ценовую категорию с "Бесплатный" на "Стандартный".
  • Масштабирование вверх: увеличьте количество единиц SignalR. Вы можете масштабировать до 100 единиц. Для масштабирования доступны ограниченные параметры единицы: 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90 и 100 единиц для одного экземпляра службы SignalR. Если вы хотите масштабировать более 100 единиц , Premium_P2 SKU предлагает расширенные возможности.

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

Сведения о ценах и емкостях отдельной службы SignalR см. в разделе "Сведения о ценах на службу Azure SignalR".

Замечание

Масштабирование службы Azure SignalR между разными ценовыми категориями может вызвать простой в работе службы. Поведение простоя варьируется в зависимости от сочетания уровней и подводится в итог в таблице.

Сценарий масштабирования Ожидаемое время простоя
Бесплатный ↔ Стандартный / Премиум Да
Стандартный_S1 ↔ Премиум_P1 нет
Premium_P1 ↔ Premium_P2 нет

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

Масштабирование ресурсов в портале Azure

  1. В браузере откройте портал Azure.

  2. На странице службы SignalR в меню слева выберите "Увеличить масштаб".

  3. Нажмите "Изменить" и выберите "Стандартный" уровень на всплывающей панели.

    Снимок экрана: масштабирование на портале.

  4. Нажмите кнопку "Сохранить".

Горизонтальное масштабирование на портале Azure

  1. В браузере откройте портал Azure.

  2. На странице службы SignalR в меню слева выберите "Горизонтальное увеличение масштаба".

  3. Выберите единицу в секторе ручного масштабирования .

    Снимок экрана: горизонтальное масштабирование на портале.

  4. Нажмите кнопку "Сохранить".

Масштабирование с помощью интерфейса командной строки Azure

Этот скрипт создает новый ресурс службы SignalR уровня "Бесплатный " и новую группу ресурсов и масштабирует ее до уровня "Стандартный ".

#!/bin/bash

# Generate a unique suffix for the service name
let randomNum=$RANDOM*$RANDOM

# Generate a unique service and group name with the suffix
SignalRName=SignalRTestSvc$randomNum
#resource name must be lowercase
mySignalRSvcName=${SignalRName,,}
myResourceGroupName=$SignalRName"Group"

# Create resource group 
az group create --name $myResourceGroupName --location eastus

# Create the Azure SignalR Service resource
az signalr create \
  --name $mySignalRSvcName \
  --resource-group $myResourceGroupName \
  --sku Free_F1 \
  --service-mode Default

# Scale up to Standard Tier, and scale out to 50 units
az signalr update \
  --name $mySignalRSvcName \
  --resource-group $myResourceGroupName \
  --sku Standard_S1 \
  --unit-count 50

Запишите реальное имя, созданное для новой группы ресурсов. Используйте это имя группы ресурсов, если требуется удалить все ресурсы группы.

Восстановление развертывания

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

az group delete --name myResourceGroup

Сравнение ценовых категорий

Подробные сведения, такие как включенные сообщения и подключения для каждой ценовой категории, см. в разделе "Сведения о ценах на службу SignalR".

Таблица ограничений служб, квот и ограничений на каждом уровне см. в разделе "Ограничения службы SignalR".

Расширенная поддержка крупных экземпляров с помощью SKU Premium_P2

Новый номер SKU Premium_P2 предназначен для упрощения обширной масштабируемости для сценариев с высоким спросом. Этот SKU позволяет масштабироваться среди значений 100, 200, 300, 400, 500, 600. 700, 800, 900, 1000 единиц для одного экземпляра службы SignalR. Это улучшение позволяет обрабатывать до одного миллиона одновременных подключений, обслуживая крупномасштабные потребности в обмене данными в режиме реального времени.

SKU можно масштабировать до Premium_P2 с помощью портала Azure или Azure CLI.

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

Замечание

Ограничение квоты по умолчанию ограничивает количество единиц SignalR в 150 на подписку в каждом регионе. Это мягкое ограничение и может быть увеличено по запросу. Для этого просто отправьте запрос в службу поддержки, чтобы запросить корректировку этой квоты.

Дальнейшие шаги

В этом руководстве вы узнали, как масштабировать один экземпляр службы SignalR.

Автомасштабирование поддерживается на уровне "Премиум" службы Azure SignalR.

Для масштабирования, сегментирования и межрегионских сценариев также поддерживается несколько конечных точек.