rabbitmq叢集部署
環境:
IP地址 主機名 作業系統 防火牆和SELinux 用途
192.168.100.143 mq01 CentOS7.4(64位) 關閉 磁碟節點
192.168.100.144 mq02 CentOS7.4(64位) 關閉 記憶體節點
192.168.100.145 mq03 CentOS7.4(64位) 關閉 記憶體節點
注意,這裡三臺伺服器都連線上網際網路,另外RabbitMQ叢集節點必須在同一網段裡,如果是跨廣域網,效果會變差。
RabbitMQ普通叢集配置
1. 配置hosts檔案
更改三臺MQ節點的計算機名分別為mq01、mq02 和mq03,然後修改hosts配置檔案
vim /etc/hostname //其他兩臺相同
mq01.localdomain
vi /etc/hosts
192.168.100.143 mq01 //注意不能帶.注意-主機名稱也要更改
192.168.100.144 mq02
192.168.100.145 mq03
2.三個節點配置yum源,安裝rabbitmq軟體
yum install -y epel-release
yum install -y rabbitmq-server
3.拷貝erlang.cookie
Rabbitmq的叢集是依附於erlang的叢集來工作的,所以必須先構建起erlang的叢集景象。Erlang的叢集中各節點是經由過程一個magic cookie來實現的,這個cookie存放在/var/lib/rabbitmq/.erlang.cookie中,檔案是400的許可權。所以必須保證各節點cookie一致,不然節點之間就無法通訊。
[root@mq01 ~]# cat /var/lib/rabbitmq/.erlang.cookie
XAHPZVPYUQDWWJIOHUPQ
用scp的方式將mq01節點的.erlang.cookie的值複製到其他兩個節點中。
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/.erlang.cookie
4.分別檢視三個節點並新增管理服務,最後啟動rabbitmq服務
RabbitMQ提供了一個非常友好的圖形化監控頁面外掛(rabbitmq_management),讓我們可以一目瞭然看見Rabbit的狀態或叢集狀態。
/usr/lib/rabbitmq/bin/rabbitmq-plugins list //檢視外掛安裝情況
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management //啟用rabbitmq_management服務
service rabbitmq-server start
5.檢視監聽埠(外掛監控的埠是15672)
6.將mq02、mq03作為記憶體節點加入mq01節點叢集中
在mq02、mq03執行如下命令:
rabbitmqctl stop_app //停掉rabbit應用
rabbitmqctl join_cluster --ram rabbit@mq01 //加入到磁碟節點
rabbitmqctl start_app //啟動rabbit應用
(1)預設rabbitmq啟動後是磁碟節點,在這個cluster命令下,mq02和mq03是記憶體節點,mq01是磁碟節點。
(2)如果要使mq02、mq03都是磁碟節點,去掉–ram引數即可。
(3)如果想要更改節點型別,可以使用命令rabbitmqctl change_cluster_node_type disc(ram),前提是必須停掉rabbit應用
7.檢視叢集狀態
本文出自:https://blog.51cto.com/u_11134648/2155934