Сравнение трех служб обмена сообщениями Azure: Сетка событий, Центры событий и Служебная шина

Azure предлагает три службы, с помощью которых реализуется доставка событий и сообщений в решениях. Эти службы: Сетка событий Azure, Центры событий Azure, Служебная шина Azure.

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

События и сообщения

Следует обратить внимание на важное различие между службами доставки событий и службами доставки сообщений.

Мероприятие

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

Дискретные события сообщают об изменении состояния и доступны для действий. Чтобы выполнить следующее действие, потребителю достаточно знать, что произошло какое-то событие. Данные события содержат сведения о том, что произошло, но не о причинах активации события. Например, потребители уведомляются о создании файла. У него могут быть общие сведения о файле, но у него нет самого файла. Дискретные события отлично подходят для бессерверных которые нужно которых требуется масштабировать.

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

Сообщение

Сообщение представляет собой необработанные данные, создаваемые службой для использования или хранения. Оно содержит данные, которые активировали конвейер сообщений. У издателя сообщения есть ожидания относительно того, как потребитель должен обработать это сообщение. Между двумя сторонами существует соглашение. Например, издатель отправляет сообщение с необработанными данными и ожидает, что потребитель создаст на их основе файл и отправит ответ по завершении задачи.

Теперь давайте быстро рассмотрим, что Сетка событий Azure, Центры событий Azure и Служебная шина Azure.

Сетку событий Azure

Сетка событий Azure — это высокомасштабируемая полностью управляемая служба распространения сообщений pub Sub, которая предлагает гибкие шаблоны потребления сообщений с помощью протоколов транспорта телеметрии очереди сообщений (MQTT) и HTTP. С помощью Сетка событий Azure можно создавать конвейеры данных с данными устройства, интегрировать приложения и создавать бессерверные архитектуры на основе событий.

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

Сетка событий глубоко интегрирована с другими службами Azure и может быть интегрирована со сторонними службами. Она упрощает использование событий и снижает затраты, устраняя необходимость в постоянных опросах. Служба "Сетка событий" надежно и эффективно перенаправляет события из Azure и ресурсов, отличных от Azure. Она распределяет события к зарегистрированным конечным точкам подписчика. Сообщение о событии содержит сведения, необходимые для реагирования на изменения в службах и приложениях. Служба "Сетка событий" — это не конвейер данных. Она не выполняет доставку фактического объекта, который был обновлен.

Оно имеет следующие характеристики.

  • Динамическая масштабируемость
  • Низкая стоимость
  • Бессерверные приложения
  • Не менее одной доставки события

Сетка событий предоставляется в двух выпусках: Сетка событий Azure, полностью управляемая служба PaaS в Azure и Сетка событий в Kubernetes с Azure Arc, которая позволяет использовать сетку событий в кластере Kubernetes, где бы ни было развернуто, локально или в облаке. Дополнительные сведения см. в разделах Обзор службы "Сетка событий Azure" и Обзор службы "Сетка событий Azure" со службой Azure Arc.

Центры событий Azure

Центры событий Azure — это платформа потоковой передачи больших данных и служба приема событий. Она может получать и обрабатывать миллионы событий в секунду. Он облегчает запись, хранение и воспроизведение потоковых данных телеметрии и событий. Данные могут поступать из многих параллельных источников. Благодаря Центрам событий данные телеметрии и событий доступны различным инфраструктурам потоковой обработки и службам аналитики. Они доступны как потоки данных или объединенные пакеты событий. Эта служба предоставляет единое решение, которое обеспечивает быстрое получение данных для обработки в режиме реального времени, а также повторное воспроизведение хранимых необработанных данных. Служба может записывать потоковые данные в файл для последующей обработки и анализа.

Оно имеет следующие характеристики.

  • Низкая задержка
  • Она может получать и обрабатывать миллионы событий в секунду.
  • Не менее одной доставки события

Дополнительные сведения см. в статье Что такое Центры событий?

Служебная шина Azure

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

Служебная шина — это система обмена сообщениями через брокер. Она хранит сообщения в "брокере" (например, в очереди), пока принимающая сторона не будет готова к приему. Оно имеет следующие характеристики.

  • Надежная асинхронная доставка сообщений (корпоративная служба обмена сообщениями как услуга), требующая опроса. Если вы используете служебная шина и вам нужно получать сообщения, не опрашивая очередь, вы можете добиться этого с помощью длительной операции опроса с помощью протоколов на основе TCP, которые служебная шина поддерживаются.
  • Расширенные возможности обмена сообщениями, например обслуживание в порядке поступления (FIFO), пакетная обработка и сеансы, транзакции, перемещение в очередь недоставленных сообщений, временный контроль, маршрутизация и фильтрация, а также обнаружение повторяющихся сообщений
  • По крайней мере однократная доставка события
  • Дополнительная упорядоченная доставка сообщений

Дополнительные сведения см. на странице обзора служебной шины.

Сравнение служб

В следующей таблице сравниваются три службы: Сетка событий, Центры событий и служебная шина.

Service Характер использования Тип Когда использовать
Сетка событий Реактивное программирование Распределение событий (дискретные события) Ответ на изменение состояния
Event Hubs Конвейер больших данных Потоковая передача событий (последовательные) Потоковая передача данных телеметрии и распределенных данных
Cлужебная шина Обмен важными сообщениями в организациях Сообщение Обработка заказов и финансовых транзакций

Одновременное использование служб

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

В других случаях вы можете связать эти службы для формирования конвейера данных и событий. С помощью службы "Сетка событий" можно отвечать на события в других службах. Пример использования сетки событий с Центрами событий для переноса данных в Azure Synapse Analytics см. в статье Stream Big data in Azure Synapse Analytics. На следующем рисунке показан рабочий процесс потоковой передачи данных.

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

См. следующие статьи: