RabbitMQ 叢集與高可用配置
阿新 • • 發佈:2019-01-04
此文轉自:http://88250.b3log.org/rabbitmq-clustering-ha
未實驗過
叢集概述
通過 Erlang 的分散式特性(通過 magic cookie 認證節點)進行 RabbitMQ 叢集,各 RabbitMQ 服務為對等節點,即每個節點都提供服務給客戶端連線,進行訊息傳送與接收。 這些節點通過 RabbitMQ HA 佇列(映象佇列)進行訊息佇列結構複製。本方案中搭建 3 個節點,並且都是磁碟節點(所有節點狀態保持一致,節點完全對等),只要有任何一個節點能夠工作,RabbitMQ 叢集對外就能提供服務。環境
- CentOS 6.4,64位
- RabbitMQ 3.1.5
- HAProxy 1.4.22
配置步驟
1. 安裝 erlang、rabbitmq 在 192.168.1.1、192.168.1.2、192.168.1.3 三個節點上安裝,然後開啟 RabbitMQ 監控外掛:
rabbitmq-plugins
enable
rabbitmq_management
|
192.168.1.1
node1
192.168.1.2
node2
192.168.1.3
node3
|
#
chmod 777 /var/lib/rabbitmq/.erlang.cookie
|
#
chmod 400 /var/lib/rabbitmq/.erlang.cookie #
chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
#
chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
|
#
rabbitmqctl stop
#
rabbitmq-server -detached
|
node2
#
rabbitmqctl stop_app
node2
#
rabbitmqctl join_cluster [email protected]e1
node2
#
rabbitmqctl start_app
node3
#
rabbitmqctl stop_app
node3
#
rabbitmqctl join_cluster [email protected]
node3
#
rabbitmqctl start_app
|
#
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
|
listen
rabbitmq_cluster 0.0.0.0:5672
mode
tcp
balance
roundrobin
server
node1 192.168.1.1:5672 check inter 2000 rise 2 fall 3
server
node2 192.168.1.2:5672 check inter 2000 rise 2 fall 3
server
node2 192.168.1.3:5672 check inter 2000 rise 2 fall 3
|