在單機(jī)環(huán)境下,配置RabbitMQ集群(以三個(gè)節(jié)點(diǎn)為例)
- 清理單機(jī)版中歷史數(shù)據(jù)
rm -rf /var/lib/rabbitmq/mnesia
- 分別啟動(dòng)三個(gè)RabbitMQ節(jié)點(diǎn)
RABBITMQ_NODE_PORT=5672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]" RABBITMQ_NODENAME=rabbit rabbitmq-server -detached
RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached
RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit3 rabbitmq-server -detached
注意事項(xiàng)
1、因?yàn)閱⒂昧薟eb管理插件,所有每個(gè)節(jié)點(diǎn)的Management也要指定不一樣的監(jiān)聽端口,否則會(huì)因?yàn)槎丝跊_突而節(jié)點(diǎn)啟動(dòng)失敗。
2、如果不指定每個(gè)節(jié)點(diǎn)單獨(dú)的插件監(jiān)聽節(jié)點(diǎn),也可將插件先移除(2.7.0以前版本)或禁用(2.7.0及以后版本)。
- 以rabbit為主節(jié)點(diǎn),其它兩個(gè)節(jié)點(diǎn)為從節(jié)點(diǎn),在從節(jié)點(diǎn)中執(zhí)行以下命令:
rabbitmqctl -n rabbit2 stop_app
rabbitmqctl -n rabbit2 reset
rabbitmqctl -n rabbit2 join_cluster rabbit@`hostname -s`
rabbitmqctl -n rabbit2 start_app
rabbitmqctl -n rabbit3 stop_app
rabbitmqctl -n rabbit3 reset
rabbitmqctl -n rabbit3 join_cluster rabbit@`hostname -s`
rabbitmqctl -n rabbit3 start_app
可用join_cluster參數(shù)--disc或--ram指定是磁盤節(jié)點(diǎn)還是內(nèi)存節(jié)點(diǎn),具體可查看join_cluster命令幫助。
- 刪除節(jié)點(diǎn)
rabbitmqctl forget_cluster_node rabbit3@`hostname -s`
- 查看集群狀態(tài)
rabbitmqctl -n rabbit cluster_status
- 設(shè)置高可用集群
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'