1. 程式人生 > 其它 >rabbitmq叢集部署

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