Сравнение трех служб обмена сообщениями 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" с Kubernetes и Azure Arc.

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

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

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Обзор службы Service Bus.

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

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

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

Используйте службы вместе

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

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

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

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