Сравнение трех служб обмена сообщениями 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. На следующем рисунке показан рабочий процесс потоковой передачи данных.
Связанный контент
См. следующие статьи:
- Asynchronous messaging options in Azure (Параметры асинхронного обмена сообщениями в Azure)
- Events, Data Points, and Messages - Choosing the right Azure messaging service for your data (События, точки данных, сообщения — выбор подходящей службы для ваших данных).