Skip to content
baden edited this page Sep 12, 2012 · 5 revisions

Установка RabbitMQ.

  1. Установить
  echo "deb http://www.rabbitmq.com/debian/ testing main">/etc/apt/sources.list.d/rabbitmq.list
  wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
  sudo apt-key add rabbitmq-signing-key-public.asc
  apt-get update &> /dev/null
  sudo apt-get install rabbitmq-server
  1. Установить менеджер для контроля.
  rabbitmq-plugins enable rabbitmq_management
  service rabbitms-server restart

Менеджер будет доступен по адресу: http://server-name:55672/mgmt/ (guest/guest).

Другие ссылки:

Подробнее тут

  1. Настроить кластер Куки на всех серверах сделать одинаковыми /var/lib/rabbitmq/.erlang.cookie. (перед изменением куки сервер необходимо остановить).

  2. Проверяем статус на каждом сервере: rabbitmqctl cluster_status. Не знаю с чем связано, но доменное имя обрезается до точки. Необходимо вписать такие записи в /etc/hosts иначе они друг друга не увидят.

  3. Выполняем на втором сервере:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl cluster rabbit@mongodb0
rabbitmqctl start_app

Я так понял вторая нода будет работать только в памяти, чтобы она работала на диск нужно ее указывать вторым параметром:

rabbitmqctl cluster rabbit@mongodb0 rabbit@mongodb1

где mongodb1 - имя домена первого сервера.

На первом сервере можно убедиться что они связялись: rabbitmqctl cluster_status


Это офигенно! Оно работает. Причем если запустить на двух разных нодах слушателей, то сообщения они получают строго по очереди.

P.S. Хотя пока не понятно. По отдельности ноды не загружаются. Нужно копать в чем дело. Ага! Про это написано в официальной документации. Если потушить все ноды, то следующий запуск будет с 30 сек задержкой и ошибкой. Нельзя тушить все ноды, в кластере должна остаться хотябы одна дисковая нода.

Clone this wiki locally