Георепликация в Azure SignalR

Компании ищут локальное присутствие или требуют надежной системы отработки отказа часто выбирают развертывание служб в нескольких регионах Azure. Благодаря интеграции георепликации в Azure SignalR управление сценариями с несколькими регионами значительно упрощается.

Преимущества использования георепликации

  • Более устойчивый к региональному сбою: если происходит региональный сбой, DNS Azure SignalR будет разрешен для работоспособных реплик в других регионах.
  • Обмен данными между регионами. Разные реплики могут взаимодействовать друг с другом, как если бы они были одинаковыми экземплярами.
  • Улучшенная скорость сети: географически распределенные клиенты подключаются к ближайшей реплике. Эти реплики взаимодействуют через глобальную сеть Azure, обеспечивая быструю и стабильную сеть.
  • Общие конфигурации. Все реплики сохраняют конфигурацию основного Служба Azure SignalR ресурса.

Необходимые компоненты

Примеры использования

Contoso — это компания социальных сетей с базой клиентов, распространяемой по всей территории США и Канады. Чтобы обслуживать этих клиентов и разрешать им взаимодействовать друг с другом, Contoso выполняет свои службы в центральной части США. Служба Azure SignalR используется для обработки подключений пользователей и упрощения взаимодействия между пользователями. Конечные пользователи Компании Contoso в основном являются пользователями телефонов. Из-за длинных географических расстояний конечные пользователи в Канаде могут столкнуться с высокой задержкой и плохим качеством сети.

Схема использования одного экземпляра Azure SignalR для обработки трафика из двух стран.

До появления функции георепликации Contoso может настроить еще один Служба Azure SignalR в Канаде Central для обслуживания своих канадских пользователей. Настроив географически ближе Служба Azure SignalR, конечные пользователи теперь имеют более высокое качество сети и низкую задержку.

Однако управление несколькими Служба Azure SignalR приводит к некоторым проблемам:

  1. Для включения общения между Канадой и пользователями США потребуется механизм обмена данными между регионами.
  2. Группе разработчиков потребуется управлять двумя отдельными Служба Azure SignalR, каждый из которых имеет отдельный домен и строка подключения.
  3. В случае регионального сбоя трафик необходимо переключить в другой регион.

Схема использования двух экземпляров Azure SignalR для обработки трафика из двух стран.

Использование георепликации

Благодаря новой функции георепликации Contoso теперь может установить реплику в Центральной Канаде, эффективно преодолевая описанные выше препятствия.

Схема использования одного экземпляра Azure SignalR с репликой для обработки трафика из двух стран.

Создание реплики SignalR

Чтобы создать реплику, перейдите в колонку "Реплики SignalR" в портал Azure и нажмите кнопку "Добавить", чтобы создать реплику. Он будет автоматически включен при создании.

Снимок экрана: создание реплики для Azure SignalR на портале.

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

Снимок экрана: колонка обзора ресурса реплики Azure SignalR.

Примечание.

  • Число реплик в настоящее время ограничено не более 8 на основной ресурс.

Цены и единица ресурсов

Каждая реплика имеет собственный unit и .autoscale settings

Реплика — это функция уровня "Премиум" Служба Azure SignalR. Каждая реплика выставляется отдельно в соответствии с собственными единицами и исходящим трафиком. Квота бесплатного сообщения также вычисляется отдельно.

В предыдущем примере Contoso добавила одну реплику в Канаде Central. Компания Contoso будет платить за реплику в Центральной Канаде в соответствии с его единицей и сообщением в ценовой категории "Премиум".

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

Удаление реплики

После создания реплики для Служба Azure SignalR его можно удалить в любое время, если он больше не нужен.

Чтобы удалить реплику на портале Azure, сделайте следующее:

  1. Перейдите к Служба Azure SignalR и выберите колонку "Реплики". Щелкните реплику, которую вы хотите удалить.
  2. Нажмите кнопку "Удалить" в колонке обзора реплики.

Общие сведения о работе реплики SignalR

На следующей схеме представлена краткая иллюстрация функциональных возможностей реплик SignalR:

Схема арки реплики Azure SignalR.

  1. Клиент ведет переговоры с сервером приложений и получает перенаправление в службу Azure SignalR. Затем она разрешает полное доменное имя службы SignalR (FQDN). contoso.service.signalr.net Это полное доменное имя указывает на Диспетчер трафика, которая возвращает каноническое имя (CNAME) ближайшего регионального экземпляра SignalR.
  2. С помощью этого CNAME клиент устанавливает подключение к региональному экземпляру (реплике).
  3. Две реплики синхронизируют данные друг с другом. При необходимости сообщения, отправленные на одну реплику, будут передаваться другим репликам.
  4. Если реплика завершается ошибкой проверки работоспособности, проведенной Диспетчер трафика (TM), TM исключит конечную точку неудачного экземпляра из процесса разрешения домена. Дополнительные сведения см. в разделе " Устойчивость и аварийное восстановление"

Примечание.

  • В плоскости данных основная функция ресурса Azure SignalR идентична ее репликам.

Устойчивость и аварийное восстановление

Служба Azure SignalR использует диспетчер трафика для проверок работоспособности и разрешения DNS в отношении реплик. При нормальных обстоятельствах, когда все реплики работают правильно, клиенты будут направляться к ближайшей реплике. Например:

  • Клиенты, близкие к eastus реплике, будут перенаправлены на реплику, расположенную в eastus.
  • Аналогичным образом клиенты, близкие к westus реплике, будут направляться в westusреплику.

В случае регионального сбоя на востоке (показано ниже), диспетчер трафика обнаружит сбой проверки работоспособности для этого региона. Затем DNS этой неисправной реплики будет исключена из результатов разрешения DNS диспетчера трафика. После длительности времени жизни DNS (TTL), установленного на 90 секунд, клиенты eastus будут перенаправлены для подключения к реплике.westus

Схема отработки отказа реплики Azure SignalR.

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

Схема восстановления отработки отказа реплики Azure SignalR.

Этот процесс отработки отказа и восстановления является автоматическим и не требует вмешательства вручную.

Для подключений к серверу отработка отказа и восстановление работают так же, как и для клиентских подключений.

Примечание.

  • Этот механизм отработки отказа предназначен для службы Azure SignalR. Региональные сбои сервера приложений выходят за рамки этого документа.

Отключение или включение конечной точки реплики

При настройке реплики можно включить или отключить конечную точку. Если он отключен, разрешение DNS-имени основного полного доменного имени не будет включать реплику, и поэтому трафик не будет направлен на него.

Схема параметра конечной точки реплики реплики Azure SignalR.

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

Схема изменения конечной точки реплики реплики Azure SignalR.

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

Эта функция также полезна для устранения региональных проблем.

Примечание.

  • Из-за кэша DNS может потребоваться несколько минут, чтобы обновление DNS вступают в силу.
  • Существующие подключения остаются не затронутыми до тех пор, пока они не будут отключены.

Влияние на производительность после добавления реплик

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

В частности, если приложение обычно передается в более крупные группы (размер >10) или одно подключение, производительность синхронизации едва заметно. Если вы обменяе сообщениями с небольшими группами (размером < 10) или отдельными пользователями, вы можете заметить немного больше затрат на синхронизацию.

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

Дополнительные сведения об оценке производительности см. в разделе "Производительность".

Ненаследуемые и унаследованные конфигурации

Реплики наследуют большинство конфигураций из основного ресурса; однако некоторые параметры необходимо настроить непосредственно на репликах. Ниже приведен список этих конфигураций:

  1. SKU: каждая реплика имеет собственное имя SKU и размер единицы. Правила автомасштабирования для реплик должны быть настроены отдельно на основе отдельных метрик.
  2. Общие частные конечные точки: хотя общие частные конечные точки автоматически реплицируются в реплики, для целевых ресурсов приватного канала требуются отдельные утверждения. Чтобы добавить или удалить общие частные конечные точки, управляйте ими в основном ресурсе. Не включите реплику до утверждения общей частной конечной точки.
  3. Параметры назначения журнала. Если на репликах не настроено, будут переданы только журналы из основного ресурса.
  4. Оповещения.

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