Георепликация в Azure Web PubSub
Критически важные приложения часто должны иметь надежную систему отработки отказа и обслуживать пользователей ближе к тому, где они находятся. Перед выпуском функции георепликации разработчики должны развернуть несколько ресурсов Web PubSub и написать пользовательский код для оркестрации взаимодействия между ресурсами. Теперь с помощью быстрой настройки с помощью портал Azure вы можете легко включить эту функцию.
Преимущества использования георепликации
- Более устойчивый к региональному сбою: если происходит региональный сбой, клиенты будут автоматически перенаправлены в здоровую реплику.
- Обмен данными между регионами: разработчики используют ресурс с поддержкой георепликации как обычно, даже если в фоновом режиме существует несколько ресурсов. Обмен данными между репликами обрабатывается службой.
- Улучшенная скорость сети: географически распределенные клиенты подключаются к ближайшей реплике. Эти реплики взаимодействуют через глобальную сеть Azure, обеспечивая быструю и стабильную сеть.
- Упрощенное управление. Все реплики совместно используют конфигурацию основного ресурса Web PubSub.
Необходимые компоненты
- Ресурс Web PubSub на уровне "Премиум".
Примеры использования
Contoso, компания социальных сетей
Contoso — это компания социальных сетей с базой клиентов, распространяемой по всей территории США и Канады. Contoso предоставляет пользователям мобильное и веб-приложение, чтобы они могли взаимодействовать друг с другом. Приложение Contoso развертывается в центральной части США. В рамках архитектуры Contoso web PubSub используется для установления постоянных подключений WebSocket между клиентскими приложениями и сервером приложений. Компания Contoso любит , что они могут выгрузить подключения WebSocket к Web PubSub, но не любит читать отчеты пользователей в Канаде с более высокой задержкой. Кроме того, команда разработчиков Компании Contoso хочет заверить приложение от регионального сбоя, чтобы пользователи могли получить доступ к приложению без прерываний.
Компания Contoso может настроить другой ресурс Web PubSub в Канаде Central, который географически ближе к пользователям в Канаде. Однако управление несколькими ресурсами Web PubSub приводит к некоторым проблемам:
- Необходимо реализовать механизм обмена данными между регионами, чтобы пользователи в Канаде и США могли взаимодействовать друг с другом.
- Группе разработчиков потребуется управлять двумя отдельными ресурсами Web PubSub, каждый из которых имеет отдельный домен и строка подключения.
- Если происходит региональный сбой, трафик должен быть направлен на доступный ресурс.
Все перечисленные выше ресурсы инженерных технологий не сосредоточены на инновациях в продукте.
Использование функции георепликации
С помощью функции георепликации Contoso теперь может установить реплику в Центральной Канаде, эффективно преодолевая описанные выше проблемы. Команда разработчиков рада узнать, что им не нужно вносить изменения в код. Это так же легко, как щелкнуть несколько кнопок на портал Azure. Команда разработчиков также рада поделиться с заинтересованными лицами, что по мере того как Contoso планирует войти на европейский рынок, им просто нужно добавить другую реплику в Европе.
Включение георепликации в ресурсе Web PubSub
Чтобы создать реплику в регионе Azure, перейдите к ресурсу Web PubSub и найдите колонку "Реплики" в портал Azure и нажмите кнопку "Добавить", чтобы создать реплику.
После создания вы сможете просмотреть или изменить реплику на портале, щелкнув имя реплики.
Примечание.
- Число реплик в настоящее время ограничено не более 8 на основной ресурс.
Цены и единица ресурсов
Каждая реплика имеет собственный unit
и .autoscale settings
Реплика — это функция уровня "Премиум" службы Azure Web PubSub. Каждая реплика выставляется отдельно в соответствии с собственными единицами и исходящим трафиком. Квота бесплатного сообщения также вычисляется отдельно.
В предыдущем примере Contoso добавила одну реплику в Канаде Central. Компания Contoso будет платить за реплику в Центральной Канаде в соответствии с его единицей и сообщением в ценовой категории "Премиум".
Будет взиматься плата за исходящий трафик между регионами. Если сообщение передается через реплики и успешно отправляется клиенту или серверу после передачи, он будет выставлен в виде исходящего сообщения.
Удаление реплики
После создания реплики для ресурса Web PubSub его можно удалить в любое время, если он больше не нужен.
Чтобы удалить реплику на портале Azure, сделайте следующее:
- Перейдите к ресурсу Web PubSub и выберите колонку "Реплики ". Щелкните реплику, которую вы хотите удалить.
- Нажмите кнопку "Удалить" в колонке обзора реплики.
Чтобы удалить реплику с помощью Azure CLI, выполните следующие действия.
az webpubsub replica delete --replica-name MyReplica --name MyWebPubSub -g MyResourceGroup
Узнайте, как работает функция георепликации
- Клиент разрешает полное доменное имя службы
contoso.webpubsub.azure.com
Web PubSub. Это полное доменное имя указывает на Диспетчер трафика, которая возвращает каноническое имя (CNAME) ближайшего регионального экземпляра Web PubSub. - С помощью этого CNAME клиент устанавливает подключение websocket к региональному экземпляру (реплике).
- Две реплики синхронизируют данные друг с другом. При необходимости сообщения, отправленные на одну реплику, будут передаваться другим репликам.
- Если реплика завершается ошибкой проверки работоспособности, проведенной Диспетчер трафика (TM), TM исключит конечную точку неудачного экземпляра из результатов разрешения домена. Дополнительные сведения см. в разделе " Устойчивость и аварийное восстановление"
Примечание.
- В плоскости данных первичные функции ресурсов Azure Web PubSub идентичны своим репликам.
Устойчивость и аварийное восстановление
Служба Azure Web PubSub использует диспетчер трафика для проверок работоспособности и разрешения DNS для реплик. При нормальных обстоятельствах, когда все реплики работают правильно, клиенты будут направляться к ближайшей реплике. Например:
- Клиенты, близкие к
eastus
реплике, будут перенаправлены на реплику, расположенную вeastus
. - Аналогичным образом клиенты, близкие к
westus
реплике, будут направляться вwestus
реплику.
В случае регионального сбоя на востоке (показано ниже), диспетчер трафика обнаружит сбой проверки работоспособности для этого региона. Затем DNS этой неисправной реплики будет исключена из результатов разрешения DNS диспетчера трафика. После длительности времени жизни DNS (TTL), установленного на 90 секунд, клиенты eastus
будут перенаправлены для подключения к реплике.westus
После устранения проблемы eastus
и подключения региона к сети проверка работоспособности завершится успешно. Клиенты в eastus
этом случае снова будут направляться в реплику в своем регионе. Этот переход является гладким, так как подключенные клиенты не будут затронуты до тех пор, пока существующие подключения не будут закрыты.
Этот процесс отработки отказа и восстановления является автоматическим и не требует вмешательства вручную.
Отключение или включение конечной точки реплики
При настройке реплики можно включить или отключить конечную точку. Если он отключен, разрешение DNS-имени основного полного доменного имени не будет включать реплику, и поэтому трафик не будет направлен на него.
Вы также можете включить отключение конечной точки после его создания. В колонке реплик основного ресурса нажмите кнопку с многоточием справа от реплики и выберите включить конечную точку или отключить конечную точку:
Прежде чем удалять репликацию, сначала рассмотрите возможность отключения конечной точки. Со временем существующие подключения будут отключены. По мере отсутствия новых подключений репликация становится простой, наконец. Это обеспечивает простой процесс удаления.
Эта функция также полезна для устранения региональных проблем.
Примечание.
- Из-за кэша DNS может потребоваться несколько минут, чтобы обновление DNS вступают в силу.
- Существующие подключения остаются не затронутыми до тех пор, пока они не будут отключены.
Влияние на производительность после включения функции георепликации
После включения реплик клиенты будут естественно распространяться на основе их географических расположений. Хотя Web PubSub берет на себя ответственность за синхронизацию данных между этими репликами, вы будете рады знать, что связанные затраты на нагрузку сервера минимальны для большинства распространенных вариантов использования.
В частности, если приложение обычно передается в более крупные группы (размер >10) или одно подключение, производительность синхронизации едва заметно. Если вы обменяете сообщениями небольшие группы (размер < 10), вы можете заметить немного больше затрат на синхронизацию.
Чтобы обеспечить эффективное управление отработкой отказа, рекомендуется задать размер единицы каждой реплики для обработки всего трафика. Кроме того, можно включить автоматическое масштабирование для управления этим.
Дополнительные сведения об оценке производительности см. в разделе "Производительность".
Ненаследуемые и унаследованные конфигурации
Реплики наследуют большинство конфигураций из основного ресурса; однако некоторые параметры необходимо настроить непосредственно на репликах. Ниже приведен список этих конфигураций:
- SKU: каждая реплика имеет собственное имя SKU и размер единицы. Правила автомасштабирования для реплик должны быть настроены отдельно на основе отдельных метрик.
- Общие частные конечные точки: хотя общие частные конечные точки автоматически реплицируются в реплики, для целевых ресурсов приватного канала требуются отдельные утверждения. Чтобы добавить или удалить общие частные конечные точки, управляйте ими в основном ресурсе. Не включите реплику до утверждения общей частной конечной точки.
- Параметры назначения журнала. Если на репликах не настроено, будут переданы только журналы из основного ресурса.
- Оповещения.
Все остальные конфигурации наследуются от основного ресурса. Например, ключи доступа, удостоверения, брандмауэр приложения, пользовательские домены, частные конечные точки и управление доступом.