Использование Apache Camel в микросервисной архитектуре - PullRequest
0 голосов
/ 19 марта 2019

Я наблюдал растущую тенденцию людей, использующих Apache Camel в микросервисной архитектуре.Например, на платформе Openshift Container.

Мне очень трудно понять, почему Enterprise Service Bus, фундаментальная монолитная система, может использоваться в микросервисной архитектуре.

Возможно, Apache Camel используется для оркестровки?Но это противоречит духу микросервисов.

Может кто-нибудь просветить меня об этом, пожалуйста?Я не могу обернуть голову вокруг этого.

1 Ответ

3 голосов
/ 19 марта 2019

Мне очень трудно понять, почему корпоративная служебная шина, фундаментальная монолитная, может использоваться в микросервисной архитектуре.

ESB имеет несколько возможностей, полезных для микросервисной архитектуры.Он позволяет:

  • передача и преобразование сообщений, см. Корпоративные шаблоны интеграции
  • межпроцессное применение политик (например, защита на уровне сообщений, авторизация, ..)
  • отсоединение конечной точки службы от ее реализации (управление версиями службы)
  • предоставляет такие стандартные услуги, как обмен сообщениями, обработка событий, мониторинг, хедлинг исключений, ..
  • смягчение точки доточечная связь
  • .. еще немного ..

Действительно, ESB обычно работает как отдельное приложение (или контейнер в вашем случае) и, реализовав все возможности, он невсегда самое легкое приложение (по сравнению с простыми одноцелевыми микросервисами).При правильной реализации ESB должен оказывать минимальное влияние на задержку ответа или нагрузку на инфраструктуру.

Предоставление стандартных услуг и межсервисных возможностей ИМХО вы можете рассматривать ESB не как отдельную услугу, а как часть инфраструктурных услуг, которые могут использоватьсяреализации микросервиса.

Возможно, Apache Camel используется для оркестровки?Но это идет вразрез с духом микросервисов.

Apache Camel - это фреймворк, его можно использовать внутри приложений, автономно или также есть продукты ESB, построенные поверх Apache Camel (RedHat Fuse ESB, Talend ESB, Apache ServiceMix, ..).

...