Rabbitmq HA кластер - PullRequest
       36

Rabbitmq HA кластер

3 голосов
/ 10 ноября 2010

Я хочу настроить RabbitMQ как кластер из двух (или более) узлов с HA.

Вариант использования: приложение-производитель клиента (C # .NET) знает, что кластер имеет два узла, и публикует данные в кластере.Различные потребительские приложения (также C # .NET) подключаются к кластеру и получают все сообщения, сгенерированные производителем.Пока хотя бы один узел запущен и работает производитель и потребители будут продолжать работать без ошибок.Предположим, что узлы A и B работают, а B некоторое время умирает, затем перезапускается, а затем через некоторое время умирает A, все клиенты продолжают функционировать, не получая ошибки, поскольку все время по крайней мере один узел работает.

Можно ли сделать так, чтобы он работал «из коробки»?

Существуют ли другие MQ, которые были бы более подходящими (коммерчески приемлемыми) для среды приложений Windows / .NET?

Ответы [ 2 ]

7 голосов
/ 02 ноября 2011

RabbitMQ v2.6.0 теперь поддерживает очереди высокой доступности с использованием активной / активной кластеризации. Microsoft и ряд других компаний сотрудничают на Apache QPid , который имеет привязки C # и также поддерживает активную / активную кластеризацию HA.

6 голосов
/ 12 ноября 2010

Можно ли заставить его работать так из коробки?

Нет. Когда узел выходит из строя, все его соединения закрываются. Поскольку AMQP-соединения с состоянием, нет никакого способа обойти это. То, что вы могли бы достичь, это: 1) брокер выходит из строя, 2) все клиенты отключаются, 3) клиенты подключаются к другому узлу (маскируясь под оригинальный) и не являются более мудрыми.

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

...