Как сделать отказоустойчивость очередей RabbitMQ?

RabbitMQ по умолчанию поддерживает кластеризацию, но очереди не реплицируются и привязываются к узлу, на котором они созданы. Теперь я ищу способы сделать RabbitMQ высокодоступным, кроме решения DRBD, которое они задокументировали, потому что кажется пустой тратой ресурсов резервировать весь сервер, который ничего не делает, а только ждет, пока активный сервер выйдет из строя.

Я думаю о настройке, в которой есть две очереди. Когда сообщение публикуется, я хочу, чтобы кластер RabbitMQ отправлял сообщение в любую из двух очередей, в зависимости от того, какая из них активна. Я знаю, что издатель получит сообщение об ошибке, если попытается опубликовать в очереди, которая не работает, и что издатель может повторить попытку с другой очередью, но мне интересно, можно ли это сделать автоматически на уровне кластера, чтобы я не не нужно писать клиентский код, чтобы справиться с этим. Можно ли это сделать?


person Hongli    schedule 05.08.2010    source источник


Ответы (3)


Недавно RabbitMQ добавил активную/активную нативную поддержку. http://www.rabbitmq.com/ha.html

person Vadym Chekan    schedule 08.02.2012
comment
Чем это лучше, чем альтернативный обмен? - person guiomie; 10.07.2013
comment
@guiomie, в альтернативном обмене, если главный узел выходит из строя, все сообщения исчезают. Активная/активная конфигурация будет копировать каждое сообщение на запасной сервер, когда оно будет отправлено на главный. - person Vadym Chekan; 10.07.2013

Посмотрите Альтернативные биржи.

Это в основном то, что вы просили, но с обменами вместо очередей. Идея заключалась бы в публикации на бирже с указанием альтернативной биржи (вы можете сделать это с любым из клиентов RabbitMQ). Если сообщение может быть доставлено первому, оно будет доставлено. Если нет (из-за того, что он недоступен или из-за того, что к нему не привязаны очереди), используется альтернативный вариант.

person scvalex    schedule 05.08.2010

Высокая доступность, также известная как «зеркальные» очереди, является золотым стандартом для Rabbit HA.

person Chris Johnson    schedule 29.08.2013