✍️ ESB / MOM / MQ
🟣ESB (Enterprise Service Bus, шина данных) — посредник для обмена данными между системами. Объединяет системы и приложения в единую интеграционную архитектуру. Управляет бизнес-логикой и маршрутизацией данных
🟡MOM (Message-Oriented Middleware) — промежуточное ПО для асинхронной передачи сообщений между приложениями
🟣MQ (Message Queue) — реализация системы очередей, частный случай MOM
MOM/MQ — не шины данных, но могут быть частью решения, основанного на шине
ESB (Enterprise Service Bus)
🟣управление данными идет через одну точку позволяет контролировать потоки данных
🟣применяется для большого количество приложений с разными протоколами и форматами данных
🟣обеспечивает маршрутизацию, трансформацию и оркестрацию сообщений между ними
🟣часто используется с легаси-системами для интеграции старых приложений с новыми
🟣может направлять сообщения между системами через MOM или MQ
Как работает
1. приложение отправляет данные на ESB через адаптер (например, для БД или веб-сервиса)
2. ESB преобразует формат данных, если требуется
3. шина маршрутизирует сообщение в нужное приложение
4. получатель получает сообщение и обрабатывает его
Шина данных считается устаревшим видом интеграции:
🟣требует сложной настройки и поддержки, т.к. нужно интегрировать много систем с разными протоколами и форматами данных
🟣труднее масштабировать: централизованная шина может не справляться с нагрузкой, в отличие от микросервисов — легко масштабируются независимо.
🟣центральная точка, сбой может привести к остановке всего обмена данными
🟣альтернативы: микросервисы и очереди сообщений (MQ). Они более гибкие: каждое приложение управляет своими связями без централизованного посредника
Пример: Apache Camel, MuleSoft
MOM (Message-Oriented Middleware)
🟣может поддерживать очереди (MQ), публикацию/подписку (Pub/Sub), маршрутизацию, обработку событий
🟣используется, когда не нужно дожидаться ответа от другой системы
🟣полезен в микросервисной архитектуре, чтобы разгрузить приложение и повысить отказоустойчивость
Как работает
1. приложение отправляет сообщение посреднику (MOM)
2. посредник сохраняет сообщение в буфере до тех пор, пока приложение-получатель не будет готово его принять
3. получатель обрабатывает сообщение, когда готов
4. MOM удаляет сообщение из буфера только после его успешной доставки
Пример: ActiveMQ, RabbitMQ - поддерживают и очереди, и другие модели, такие как Pub/Sub
MQ (Message Queue)
🟣используется для гарантированной доставки сообщений между приложениями, например, в платежных системах
🟣 сообщения обрабатываются по принципу FIFO (первый пришел, первый ушел) и удаляются после их получения
🟣позволяет передавать данные без ожидания мгновенного ответа
Пример: IBM MQ
📎 Материалы
1. От хаоса к порядку: как легко интегрировать сервисы с помощью Enterprise Service Bus
2. Шины данных (ESB): зачем компаниям использовать этот инструмент
3. Почему технари против шин данных: middleware, ESB, брокеров сообщений?
4. Как я 10 лет строю интеграцию в банке: от ESB-монолита к целой линейке систем
5. Уже поменяли шину? Наш опыт «переобувания» и разработки интеграционной платформы
6. ESB интеграция: объяснение и цель
7. Что такое MQ? Основные понятия
8. Интеграция на основе сообщений. Преимущества и отличия от других подходов
9. Кафка это шина? API, MQ, шины/ESB. Неочевидные минусы подходов и их плюсы
#проектирование #архитектура
➿➿➿➿➿➿➿➿➿➿
🧑🎓 Больше полезного в базе знаний по системному анализу
Post #526
17.2K
- ❤ 12
- 👍 12
- 🔥 6
- 🤣 3