Spring Cloud Streams Мульти-связыватель RabbitMQ и подключаемый модуль / приложение Shovel

Рассмотрим две системы. Каждая из систем использует выделенного брокера обмена сообщениями для связи между своими микросервисами.

Мы хотим связать эти две системы с помощью Spring Cloud Stream.

Случай А

Обе системы используют RabbitMQ в качестве брокера сообщений.

Какой подход лучше:

  1. Мульти-связыватель (spring.cloud.stream.binders) позволяет подключаться к двум разным административным доменам. «Конфигурация с несколькими связывателями, environment.spring.rabbitmq вынуждает нас создать совершенно новый контекст дочернего приложения, который не принимает во внимание какие-либо компоненты, сконфигурированные приложением» ... что вызывает некоторые проблемы
  2. Shovel Plugin, который перемещает сообщения между двумя разными административными доменами и не выполняет t заставить систему выйти за пределы своего домена. Готово ли производство плагина Shovel?

Случай B

Первая система использует RabbitMQ, а вторая - брокер сообщений Kafka.

Какой подход лучше:

  1. Мульти-скоросшиватель - аналогично случаю А.1.
  2. Приложение для интеграции Shovel, реализованное как мульти-связыватель Spring Cloud Stream, которое работает как плагин Shovel для нескольких брокеров. В этом случае наша система не вынуждена выходить за пределы своего домена.

Я думаю, что A.2 и B.2 - лучшие решения, но я хотел бы обсудить это с опытными разработчиками программного обеспечения.


person kinjelom    schedule 27.11.2018    source источник
comment
В идеале я бы сказал A1, но, как вы отметили, у нас есть проблемы с некоторыми расширенными конфигурациями. Их необходимо исправить, прежде чем A1 станет жизнеспособным вариантом. Итак, с этим я бы ошибся на стороне A2.   -  person Oleg Zhurakousky    schedule 27.11.2018
comment
@OlegZhurakousky А что насчет loose coupling? Multi-binder затрудняет обновление системы брокера обмена сообщениями, плагин Shovel упрощает его.   -  person kinjelom    schedule 27.11.2018
comment
Мульти-связующее затрудняет. . . - в каком смысле? Я имею в виду, что да, вам нужно обновить некоторые свойства и т. Д., Но как часто вы переключаете свою систему с одного брокера на другого? ИМХО главное, чтобы функциональный код не менялся. Это не означает, что плагин Shovel не является жизнеспособным вариантом, и на самом деле это единственный вариант, который вы можете использовать на данный момент, чтобы избежать множественных привязок. . .   -  person Oleg Zhurakousky    schedule 27.11.2018
comment
Multi-binder затрудняет обновление системы брокера обмена сообщениями, потому что вы должны позаботиться о том, чтобы все клиенты были готовы к работе с новой версией. В случае с плагином лопаты вам нужно только проверить совместимость плагина.   -  person kinjelom    schedule 28.11.2018