Важное уточнение
В данной статье мы рассуждаем, что же выбрать для своей организации — брокер очередей или ESB, не стоит забывать, что внутри ESB также находятся брокер очередей со всем его функционалом. Таким образом, ESB включает в себя возможности как для маршрутизации, так и для трансформации данных и направления между различными цепями. В то же время брокер очередей занимается маршрутизацией данных. Брокер создаёт тему и кладёт в неё сообщения, после чего потребитель сам забирает сообщения из конкретной темы.
Рассмотрим, из чего состоит корпоративная шина данных (ESB), и за что отвечает каждый из её модулей:
Брокер сообщений
Модуль, отвечающий за логистику сообщений между системами.
Модуль преобразования данных
Этот модуль отвечает за функциональность изменения и преобразования данных. Он позволяет изменять формат сообщения для «получателя» данных, обогащать информацию или реструктурировать её до нужного вида.
Модуль безопасности
Модуль, позволяющий отслеживать действия внутри системы, настраивать аутентификацию и доступ к различным компонентам. Он позволяет создавать ролевую политику и контролировать действия пользователей.
Модуль управления и мониторинга
Этот модуль позволяет отслеживать производительность шины и её компонентов, активность конкретных модулей и выявлять ошибки.
Вот несколько примеров популярных корпоративных шин данных:
Apache Camel, SAP PI, IBM IIB, Oracle Service Bus, Red Hat, Factor ESB. Часть из этих производителей уже поднялись на следующую ступень “’эволюции” и стали интеграционными платформами.
Брокеры сообщений обычно состоят из нескольких ключевых модулей, каждый из которых выполняет специфическую функцию, обеспечивающую надежную и эффективную передачу сообщений. Основные модули, присутствующие в брокерах сообщений, включают:
Управление очередями
Модуль управления очередями отвечает за создание, управление и хранение очередей сообщений.
Маршрутизация сообщений
Модуль маршрутизации определяет, как и куда будут направляться сообщения.
Обработка сообщений
Модуль обработки сообщений отвечает за обработку сообщений, включая их извлечение из очереди и передачу получателям
Обработка ошибок
Модуль обработки ошибок и управления отвечает за обработку ошибок в процессе передачи и обработки сообщений.
Популярные представители брокеров сообщений:
Apache ActiveMQ, RabbitMQ, Apache Kafka, MSMQ (очередь сообщений Microsoft).
Сравнение характеристик esb и брокера сообщений
Важно! Перед ознакомлением с таблицей стоит помнить, что внутри корпоративной шины данных также присутствует модуль «брокер сообщений», и весь функционал брокера включен в этот модуль.
Характеристика | Брокер сообщений | ESB | |
Функциональность | Фокусируется на надежной доставке и асинхронной обработке сообщений, предоставляя возможности очереди и публикации/подписки | Предоставляет широкие возможности интеграции, включая преобразование данных, маршрутизацию, оркестрацию, управление потоком сообщений, безопасность, мониторинг | |
Сложность | Проще в использовании и обслуживании, требует меньше вычислительных ресурсов | Более сложный из-за богатой функциональности, требует специализированных знаний для настройки и дальнейшего обслуживания. Как правило используется в кластере | |
Гибкость | Менее гибкий, но обеспечивает простоту и надежность в стандартных сценариях | Более гибкий и настраиваемый, позволяет создавать сложные интеграционные сценарии | |
Стоимость | Низкая стоимость первоначальной покупки, высокая стоимость владения на добавлении сложных сценариев | Более высокая стоимость первоначальной покупки, низкая стоимость владения за счёт скорости и удобства подключения новых систем |
Сценарий применения ESB
Компания использует несколько различных систем для управления заказами, складскими запасами и финансами. Каждая из этих систем разработана с помощью команд и требует разных форматов данных. ESB решает проблему обмена данными между последовательностями, выступая посредником, который «переводит» данные в нужные форматы и управляет их передачей.
Пошаговое применение:
- Заказ оформляется в системе заказов, ESB принимает эти данные, преобразует их в нужный формат и отправляет на склад для резервирования товара, в логистический отдел для формирования путевых листов и расчёта маршрутов движения и сроков доставки.
- Затем ESB направляет данные в систему финансов, где информация о заказах преобразуется в финансовый документ.
- ESB получает данные из связанных систем и отправляет итоговое сообщение в систему CRM, чтобы клиент автоматически получил подтверждение запроса, с прогнозируемыми датами доставки.
Сценарий применения брокера сообщений
У компании есть интернет-магазин, где клиенты оформляют заказы, компания должна обработать их в первую очередь. Брокер сообщений (например, RabbitMQ или Kafka) позволяет передавать данные о заказах и выполнять обработку без ожидания каждого шага, что обеспечивает быстрое выполнение системы взаимодействия.
Пошаговое применение:
- Клиент оформляет заказ, и система сразу же отправляет сообщение о новом заказе в очередь брокера.
- Сообщение может быть получено одновременно и обработано несколькими сервисами: один резервирует товар на складе, другой обновляет данные в CRM, а третий запускает процесс подготовки доставки.
- Каждый сервис обрабатывает сообщение тогда, когда у него есть ресурсы, не мешая другому и не перенося нагрузку на центральную систему.
Важно! Перед ознакомлением с таблицей просим помнить, что внутри корпоративной шины данных также присутствует модуль «брокер сообщений», и весь функционал брокера включен в этот модуль.
Критерии | Брокер сообщений | ESB | |
Форматы и протоколы | Достаточно одного формата или протокола | Необходима трансформация данных и поддержка разных протоколов | |
Последовательность обработки | Допускается асинхронная обработка | Требуется четкая последовательность передачи данных, может использоваться асинхронная обработка данных | |
Надежность передачи | Важна только устойчивость к сбоям и буферизации сообщений | Необходима централизованная надежность передачи данных | |
Централизованное управление | Легкая интеграция и настройка независимых сервисов | Требуется контроль и управление потоками |
ESB ИЛИ брокер сообщений?
ESB больше подходит для выполнения сложных интеграций или большого количества простых, отвечающих самым строгими требованиями к данным. Тогда как брокер лучше использовать для небольшого количества простых интеграций.
Тенденции и будущее ESB и брокеров сообщения
Современные технологии — облачные сервисы, микросервисы, платформы low-code/no-code — меняют подходы к представлению данных и определению будущего ESB и брокеров сообщений. ESB и брокеры развиваются, чтобы поддержать новые бизнес-задачи. Они становятся гибче, доступнее и готовы к работе с новейшими технологиями, которые делают их актуальными для современных распределенных и динамичных ИТ-сред.
Облачные технологии и микросервисы
- Облачные платформы позволяют легко масштабировать ESB и брокеры сообщений, делая их доступными без затрат в инфраструктуре.
- Микросервисы делают брокеры оперативным выбором благодаря асинхронной передаче данных и независимости сервисов. ESB актуален для сложных оркестраций, где важна строгая последовательность данных.
Развитие решений low-code/no-code
- Упрощение интеграций платформа low-code/no-code ограничивает сложность создания интеграций, открывая доступ к ESB и брокерам сообщений для пользователей без специальной подготовки.
- Шаблоны для интеграций стандартизированные сценарии упрощают интеграцию новых систем или изменение уже существующих.
- ESB и брокеры играют важную роль в управлении данными и системами, обеспечивая связность и обмен данными.
- ESB подходит для сложных процессов с необходимостью постоянной обработки и централизованного управления, в то время как брокеры ориентированы на асинхронную передачу данных и простые интеграции.
- Современные тенденции, такие как облачные технологии, микросервисная архитектура, решения low-code/no-code, расширяют возможности и адаптируют эти решения для динамичных бизнес-сред.
Рекомендации по выбору и внедрению сообщений ESB или брокера
- Следствием выбора ESB является необходимость строгой последовательности и централизации данных, а также если требуются возможности оркестрации и трансформации данных.
- Используйте брокеры сообщений для распределенных и асинхронных систем, где важна независимость обработки и устойчивость к страхам.
- Учитывайте платформу low-code/no-code для упрощения интеграции и ускорения разработки, особенно для небольших и средних компаний, где требуется быстрая адаптация без сохранения ИТ-знаний.
Позвоните, Напишите нам
Свяжитесь с нами удобным для Вас способом