我的環境:
centos6 兩臺機器
下載rpm包安裝
772 rpm -ivh erlang-22.1.8-1.el6.x86_64.rpm
775 yum install socat
776 rpm -ivh rabbitmq-server-3.8.1-1.el6.noarch.rpm
安裝管理插件
784 rabbitmq-plugins enable rabbitmq_management
修改支持guest遠程登錄
786 vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.1/ebin/rabbit.app
按照下面參考文件中的方法修改配置文件
vim /etc/hosts
修改.erlang.cookie文件
保證兩臺機器的內容相同
.erlang.cookie的位置爲 /var/lib/rabbitmq/.erlang.cookie
(採用其他安裝方式找不到文件的話,可以使用命令 find / -name '.erlang.cookie' 找到文件位置)
添加節點
把rabbitmq2節點添加到集羣中去,在rabbitmq2節點執行以下命令:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
rabbitmqctl cluster_status 查看集羣狀態
刪除節點
把某一節點從集羣中刪除很簡單,reset一下節點即可。如刪除rabbitmq3節點,在rabbitmq3上執行以下命令:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
創建鏡像集羣
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
遇到的坑:
/etc/init.d/rabbitmq-server stop 是無法殺死rabbitmq進程的,使用kill殺死全部rabbitmq進程
修改配置後也不要使用etc/init.d/rabbitmq-server start啓動, 會報錯
參考文檔:
搭建 RabbitMQ Server 高可用集羣
https://www.cnblogs.com/xishuai/p/centos-rabbitmq-cluster-and-haproxy.html