Балансировка нагрузки для сервера RabbitMQ (брокер), а не для потребителей (клиентов)
В этом примере у меня есть сеть из 2 потребителей и 2 издателей в моей сети. Центром является брокер RabbitMQ, как показано на скриншоте ниже. По причинам отказоустойчивости мне интересно, поддерживает ли RabbitMQ балансировку нагрузки или зеркалирование сервера (брокера) каким-либо образом. Я просто хотел бы избавиться от топологии звезды по двум причинам:
1) If one broker fails, another publisher can take over immediately
2) If one brokers network throughput is not good enough the other takes over
Решение одного или другого (или даже обоих) было бы здорово.
Моя текущая инфраструктура
1 ответ
Кластеризация RabbitMQ ( docs) может удовлетворить ваше первое требование. Используйте три узла и убедитесь, что ваши приложения написаны и протестированы с учетом сценариев отказов.
Я не знаю ничего такого, что могло бы удовлетворить ваше второе требование. Вам нужно будет реализовать то, что использует статистику кластера или статистику приложения, чтобы определить, когда переключаться на другой кластер из-за низкой пропускной способности.
ПРИМЕЧАНИЕ: команда RabbitMQ контролирует rabbitmq-users
список рассылки и только иногда отвечает на вопросы по Stackru.