Мне очень трудно понять, почему корпоративная служебная шина, фундаментальная монолитная, может использоваться в микросервисной архитектуре.
ESB имеет несколько возможностей, полезных для микросервисной архитектуры.Он позволяет:
- передача и преобразование сообщений, см. Корпоративные шаблоны интеграции
- межпроцессное применение политик (например, защита на уровне сообщений, авторизация, ..)
- отсоединение конечной точки службы от ее реализации (управление версиями службы)
- предоставляет такие стандартные услуги, как обмен сообщениями, обработка событий, мониторинг, хедлинг исключений, ..
- смягчение точки доточечная связь
- .. еще немного ..
Действительно, ESB обычно работает как отдельное приложение (или контейнер в вашем случае) и, реализовав все возможности, он невсегда самое легкое приложение (по сравнению с простыми одноцелевыми микросервисами).При правильной реализации ESB должен оказывать минимальное влияние на задержку ответа или нагрузку на инфраструктуру.
Предоставление стандартных услуг и межсервисных возможностей ИМХО вы можете рассматривать ESB не как отдельную услугу, а как часть инфраструктурных услуг, которые могут использоватьсяреализации микросервиса.
Возможно, Apache Camel используется для оркестровки?Но это идет вразрез с духом микросервисов.
Apache Camel - это фреймворк, его можно использовать внутри приложений, автономно или также есть продукты ESB, построенные поверх Apache Camel (RedHat Fuse ESB, Talend ESB, Apache ServiceMix, ..).