Я хорошо знал, что Spring AMQP поддерживает аварийное переключение, но мой вопрос в том, как я могу сбалансировать нагрузку соединений между клиентской стороной и узлами кластера брокера RabbitMQ?
Мы будем благодарны за любой ответ.
С Уважением.
Я хорошо знал, что Spring AMQP поддерживает аварийное переключение, но мой вопрос в том, как я могу сбалансировать нагрузку соединений между клиентской стороной и узлами кластера брокера RabbitMQ?
Мы будем благодарны за любой ответ.
С Уважением.
Согласно RabbitMQ Clustering Guide
:
Клиент может нормально подключаться к любому узлу кластера. Если этот узел выходит из строя и остальная часть кластера выживает, то клиент должен заметить закрытое соединение и должен иметь возможность повторно подключиться к какому-либо уцелевшему члену кластера. Как правило, не рекомендуется запекать имена хостов узлов или IP-адреса в клиентских приложениях: это приводит к негибкости и потребует редактирования, перекомпиляции и повторного развертывания клиентских приложений в случае изменения конфигурации кластера или количества узлов в кластере. Вместо этого мы рекомендуем более абстрактный подход: это может быть служба динамического DNS с очень короткой конфигурацией TTL, или простой балансировщик нагрузки TCP, или какой-то мобильный IP-адрес, достигнутый с помощью кардиостимулятора или аналогичных технологий. В общем, этот аспект управления подключением к узлам в кластере выходит за рамки самого RabbitMQ, и мы рекомендуем использовать другие технологии, разработанные специально для решения этих проблем.
См. Также этот ответ: Балансировка нагрузки клиента RabbitMQ.
И цитата из здесь < / а>:
Создайте перед ним балансировку нагрузки и сопоставьте внутренний экземпляр MQ. Вы можете выбрать HAProxy, Apache или Nginx или любой аппаратный балансировщик нагрузки, который вы используете в своей организации.
Если серверы работают в AWS внутри VPC, выберите внутренний балансировщик нагрузки. Обновите приложение, чтобы оно указывало на конечную точку балансировщика нагрузки.
Как видите, информации по этому поводу в Интернете достаточно. Правильно, я не высказал здесь своего мнения, но похоже, что для достижения желаемого решения не так много сложностей.
Просто настройте какой-нибудь балансировщик нагрузки для узлов Rabbit и используйте его URL-адрес для клиентов.