Как работает балансировщик нагрузки в RabbitMQ
Я новичок в RabbitMQ, поэтому, пожалуйста, извините меня за тривиальные вопросы:
1) в случае кластеризации в RabbitMQ, если узел терпит неудачу, перенос нагрузки на другой узел (без остановки других узлов). Аналогично, мы также можем добавить новые свежие узлы в существующий кластер без остановки существующих узлов в кластере. Это верно?
2) Предположим, что мы начинаем с одного узла rabbitMQ и создаем на нем 100 очередей. Теперь производители стали посылать сообщения быстрее. К обработайте эту нагрузку, мы добавим больше узлов и сделаем кластер. Но очереди существуют только на первом узле. Как теперь балансируется нагрузка между узлами? И если нам нужно добавить больше очередей, на каком узле мы должны их добавить? Или мы можем добавить их с помощью балансировщика нагрузки.
Заранее Спасибо
1 ответов
1) в случае кластеризации в RabbitMQ, если узел терпит неудачу, перенос нагрузки на другой узел (без остановки других узлов). Аналогично, мы также можем добавить новые свежие узлы в существующий кластер без остановки существующих узлов в кластере. Это верно?
если узел, на котором была создана очередь, терпит неудачу, rabbitmq выберет новый мастер для этой очереди в кластере, если зеркальное отображение для очереди включено. Кластеризация предоставляет HA на основе политики, которая вы можете определить.
2) Предположим, что мы начинаем с одного узла rabbitMQ и создаем на нем 100 очередей. Теперь производители стали посылать сообщения быстрее. Чтобы справиться с этой нагрузкой, мы добавляем больше узлов и делаем кластер. Но очереди существуют только на первом узле. Как теперь балансируется нагрузка между узлами?
нагрузка не сбалансирована. Распределенный кластер обеспечивает HA, а не балансировку нагрузки. Ваши запросы будут перенаправлены на узел в кластере, на котором очередь находится.
и если нам нужно добавить больше очередей, на каком узле мы должны их добавить? Или мы можем добавить их с помощью балансировщика нагрузки.
Это зависит от вашего варианта использования. Некоторые люди используют круговой цикл и создают очереди на отдельных узлах.
в резюме
- для использования HA зеркальное отображение в кластере.
- чтобы сбалансировать нагрузку на узлы, используйте LB для распределения по очередям.
- если вы хотите загрузить баланс самой очереди, посмотрите на Федеративных Очереди. Они позволяют получать сообщения в нижестоящей очереди из вышестоящей очереди.