Master_slave в RabbitMQ - PullRequest
       34

Master_slave в RabbitMQ

1 голос
/ 27 июня 2011

Как мы можем реализовать конфигурацию Master_slave, используя сервер RabbitMQ. Я читал во многих местах и ​​сам пережил, что

"Узлы RabbitMQ в кластере на самом деле не могут совместно использовать одни и те же файлы, кроме файла cookie. Сценарий сам проверяет, создает ли он папки и имена файлов с префиксом" $ NODE_ID $ "при запуске посредника, чтобы все файлы для этот узел будет создан внутри одной папки, он создает две основные папки внутри папок и выполняет следующие действия: а. db: создает папку с именем «$ NODE_ID $» - mnesia и создает в ней все файлы db. б. log: Создает файлы с именем, начинающимся с префикса «$ NODE_ID $»
Даже если мы настроим скрипт для обоих узлов, чтобы он указывал на одну и ту же папку mnesia, 2-й экземпляр посредника не запустится из-за проблемы блокировки mnesia со следующей ошибкой:

{"init terminating in do_boot",
{{nocatch,{error,{cannot_start_application,mnesia,{killed,{mnesia_sup,start,[normal,[]]}}}}},[{init,start_it,1},{init,start_em,1}]}} 
Crash dump was written to: erl_crash.dump init terminating in do_boot ()".

Все, что я хотел знать, - это если в расположении, в котором есть 2 узла «ведущий» и «ведомый» в кластере, и если ведущий не работает в течение некоторого времени, то за это время как подчиненный может войти в картину для получение и отправка сообщений от имени мастера. Поскольку совместное использование базы данных невозможно.

1 Ответ

0 голосов
/ 27 июня 2011

Ознакомьтесь с рекомендациями по созданию высокодоступного кластера с DRDB и кардиостимулятором: http://www.rabbitmq.com/pacemaker.html

Однако это немного сложно настроить, поэтому вы можете подождать еще несколько недель, так как следующий основной выпуск будет включать встроенную поддержку избыточных очередей для кластеров. Подробнее об этом см. Здесь:

http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2011-June/013304.html

...