
資料內容:
1.RabbitMQ集群搭建 
一般來說,如果只是為了學習RabbitMQ或者驗證業(yè)務工程的正確性那么在本地環(huán)境或者測試環(huán)境 
上使用其單實例部署就可以了,但是出于MQ中間件本身的可靠性、并發(fā)性、吞吐量和消息堆積能 
力等問題的考慮,在生產環(huán)境上一般都會考慮使用RabbitMQ的集群方案。 
1.1 集群方案的原理 
RabbitMQ這款消息隊列中間件產品本身是基于Erlang編寫,Erlang語言天生具備分布式特性(通 
過同步Erlang集群各節(jié)點的cookie來實現(xiàn))。RabbitMQ本身不需要像ActiveMQ、Kafka那樣通 
過ZooKeeper分別來實現(xiàn)HA方案和保存集群的元數(shù)據(jù)。 
1.2 如下案例中使用多臺云服務器進行集群搭建 
主要參考官方文檔:https://www.rabbitmq.com/clustering.html 
首先確保RabbitMQ運行沒有問題 
1 #修改hostname 
2 vim /etc/hostname 
3 m1 
4 m2 
5 #修改hosts集群設備 
6 vim /etc/hosts 
7 192.168.132.137 m1 
8 192.168.132.139 m2 
9 
10 #開放防火墻 4369/5672/15672/25672端口 
11 firewall‐cmd ‐‐zone=public ‐‐add‐port=4369/tcp ‐‐permanent 
12 firewall‐cmd ‐‐zone=public ‐‐add‐port=5672/tcp ‐‐permanent13 firewall‐cmd ‐‐zone=public ‐‐add‐port=15672/tcp ‐‐permanent 
14 firewall‐cmd ‐‐zone=public ‐‐add‐port=25672/tcp ‐‐permanent 
15 
16 #重載防火墻 
17 firewall‐cmd ‐‐reload 
18 
19 #重啟服務器 
20 reboot 
21 
22 #同步.erlang.coolie 
23 find / ‐name *.cookie 
24 
25 #將文件發(fā)送至指定ip的服務器中,發(fā)送的過程中需要指定另一臺服務器的密碼信息 
26 scp /var/lib/rabbitmq/.erlang.cookie 192.168.132.134:/var/lib/rabbitmq/ 
27 
28 #兩個電腦啟動MQ服務 
29 rabbit‐server 
30 
31 
32 # 停止應用 通過rabbitmqctl status 可以查看當前rabbitmactl默認操作的節(jié)點信息 
33 rabbitmqctl stop_app 
34 
35 # 將當前節(jié)點加入到一個集群中 默認磁盤節(jié)點被加入的節(jié)點只要是集群中的一員,其他節(jié)點都能 
夠馬上感受到集群節(jié)點的變化 
36 rabbitmqctl join_cluster rabbit@m1 
37 
38 # 重新啟動當前節(jié)點 
39 rabbitmqctl start_app 
40 
41 #查看集群信息 
42 rabbitmqctl cluster_status
 
                