September 7, 2023

ЧТО ТАКОЕ ИНТЕГРАЦИОННАЯ ШИНА ESB (ENTERPRISE SERVICE BUS)?

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

Погнали 🚀

Что такое ESB шина?

Enterprise Service Bus (ESB) - это технология, которая работает, как посредник и помогает передавать данные между сервисами, которые написаны на разных языках и имеют разные протоколы, такие как HTTP/HTTPS, JMS (Java Message Service), SOAP, MQTT и других.

По факту, это конкретное программное обеспечение, которое устанавливают на сервер, например:

  • IBM IIB
  • Red Hat JBoss Fuse
  • Mule ESB
  • Oracle Service Bus
  • Apache ServiceMix
  • Apache Camel

Когда применяют ESB шину?

Когда у вас много сервисов, все они имеют разные протоколы, разные форматы данных, а логика интеграции достаточно сложная.


Представьте, что вы работаете в банке.

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

Когда сервисов 5 или 10, то все нормально.

Вы легко можете настроить их взаимодействие, но если их 100 или больше, то тогда вам придется поддерживать большое количество связей, контролировать зависимости и это превратится в какой-то хаос.

Чтобы это полечить и сделать систему более структурной используют ESB шину.

И система начинает выглядит вот так:

Какие плюсы есть у ESB шины?

  • Интеграция: позволяет объединить разные программы и системы, что делает их более взаимосвязанными.
  • Гибкость: может работать с разными технологиями и легко настраивается под нужды компании.
  • Безопасность: помогает защитить данные, обмениваемые между приложениями.

Какие минусы есть у ESB шины?

  • Сложность: Для того, чтобы настраивать и управлять ESB нужно изучить работу отдельного приложения и научится с ним работать.
  • Зависимость: Если ESB выходит из строя, это может повлиять на работу всех приложений, связанных с ним.
  • Затраты: Развертывание и поддержание ESB может быть дорогостоящим, так как многие ESB платные, плюс на их настройку и поддержание необходимо находить специалистов, которые будут с ней работать.
  • Легко перегрузить: ESB может стать "узким местом" в инфраструктуре и замедлить обмен данными, если сделать большую нагрузку. Система может не выдержать и зависнуть или замедлиться.

Что можно почитать, чтобы углубиться в работу шины?

https://compress.ru/article.aspx?id=21413

https://habr.com/ru/companies/pnn/articles/191600/

https://coderlessons.com/tutorials/java-tekhnologii/uznaite-mulesoft/mulesoft-kratkoe-rukovodstvo

https://habr.com/ru/companies/mygames/articles/671496/