Я пишу сервис для Spring и использую Spring AMQP для подключения к Rabbitmq.
У меня есть два кластера rabbitmq, один только для публикации сообщений (сообщения отправляются в другой кластер).через плагин федерации), а другой кластер предназначен для объявления очередей, из которых будут потребляться конечные пользователи.
Узлы располагаются за aws lb, у каждого кластера есть фунты.
Я использую CachingConnectionFactory иRabbitTemplate, RabbitAdmin в моем коде, и я хочу иметь подключения ко всем узлам, чтобы я мог их использовать.Для кластера, который будет содержать очереди, которые я добавил в конфигурацию, queue-master-locator = random, поэтому новые очереди будут объявлены во всех узлах кластера, даже если моя служба не имеет к ним подключения.
С кластером, который публикует сообщения, у меня больше проблем, потому что мне нужно прямое соединение в моем сервисе с каждым из узлов, чтобы я мог разделить нагрузку между узлами.
Так что моя проблемав том, как мне создать соединения в моей службе со всеми узлами в кластере, чтобы они все использовались для объявления очередей и отправки сообщений?
Теперь, после того, как у меня будет какое-то решение этой проблемы,следующая проблема будет в том, что произойдет, когда новый узел будет добавлен в кластер?Как я могу создать соединение с ним и начать его использовать?
Я использую Rabbitmq - 3.7.9, Spring - 2.0.5, Spring AMQP - 2.0.5
Большое спасибо!