Сбалансированное соединение между Java-клиентом Spring AMQP и узлами кластера RabbitMQ?

Я хорошо знал, что Spring AMQP поддерживает аварийное переключение, но мой вопрос в том, как я могу сбалансировать нагрузку соединений между клиентской стороной и узлами кластера брокера RabbitMQ?

Мы будем благодарны за любой ответ.

С Уважением.


person Wuaner    schedule 19.09.2014    source источник


Ответы (1)


Согласно RabbitMQ Clustering Guide:

Клиент может нормально подключаться к любому узлу кластера. Если этот узел выходит из строя и остальная часть кластера выживает, то клиент должен заметить закрытое соединение и должен иметь возможность повторно подключиться к какому-либо уцелевшему члену кластера. Как правило, не рекомендуется запекать имена хостов узлов или IP-адреса в клиентских приложениях: это приводит к негибкости и потребует редактирования, перекомпиляции и повторного развертывания клиентских приложений в случае изменения конфигурации кластера или количества узлов в кластере. Вместо этого мы рекомендуем более абстрактный подход: это может быть служба динамического DNS с очень короткой конфигурацией TTL, или простой балансировщик нагрузки TCP, или какой-то мобильный IP-адрес, достигнутый с помощью кардиостимулятора или аналогичных технологий. В общем, этот аспект управления подключением к узлам в кластере выходит за рамки самого RabbitMQ, и мы рекомендуем использовать другие технологии, разработанные специально для решения этих проблем.

См. Также этот ответ: Балансировка нагрузки клиента RabbitMQ.

И цитата из здесь < / а>:

Создайте перед ним балансировку нагрузки и сопоставьте внутренний экземпляр MQ. Вы можете выбрать HAProxy, Apache или Nginx или любой аппаратный балансировщик нагрузки, который вы используете в своей организации.

Если серверы работают в AWS внутри VPC, выберите внутренний балансировщик нагрузки. Обновите приложение, чтобы оно указывало на конечную точку балансировщика нагрузки.

Как видите, информации по этому поводу в Интернете достаточно. Правильно, я не высказал здесь своего мнения, но похоже, что для достижения желаемого решения не так много сложностей.

Просто настройте какой-нибудь балансировщик нагрузки для узлов Rabbit и используйте его URL-адрес для клиентов.

person Artem Bilan    schedule 19.09.2014