Рассмотрим две системы. Каждая из систем использует выделенного брокера обмена сообщениями для связи между своими микросервисами.
Мы хотим связать эти две системы с помощью Spring Cloud Stream.
Случай А
Обе системы используют RabbitMQ в качестве брокера сообщений.
Какой подход лучше:
- Мульти-связыватель (
spring.cloud.stream.binders
) позволяет подключаться к двум разным административным доменам. «Конфигурация с несколькими связывателями,environment.spring.rabbitmq
вынуждает нас создать совершенно новый контекст дочернего приложения, который не принимает во внимание какие-либо компоненты, сконфигурированные приложением» ... что вызывает некоторые проблемы - Shovel Plugin, который перемещает сообщения между двумя разными административными доменами и не выполняет t заставить систему выйти за пределы своего домена. Готово ли производство плагина Shovel?
Случай B
Первая система использует RabbitMQ, а вторая - брокер сообщений Kafka.
Какой подход лучше:
- Мульти-скоросшиватель - аналогично случаю А.1.
- Приложение для интеграции Shovel, реализованное как мульти-связыватель Spring Cloud Stream, которое работает как плагин Shovel для нескольких брокеров. В этом случае наша система не вынуждена выходить за пределы своего домена.
Я думаю, что A.2 и B.2 - лучшие решения, но я хотел бы обсудить это с опытными разработчиками программного обеспечения.
loose coupling
? Multi-binder затрудняет обновление системы брокера обмена сообщениями, плагин Shovel упрощает его. - person kinjelom   schedule 27.11.2018