Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
RabbitMQ集群搭建指南:提升企業(yè)消息系統(tǒng)的效能與穩(wěn)定性 PDF 下載
發(fā)布于:2024-01-26 10:14:50
(假如點(diǎn)擊沒(méi)反應(yīng),多刷新兩次就OK!)

RabbitMQ集群搭建指南:提升企業(yè)消息系統(tǒng)的效能與穩(wěn)定性  PDF 下載   圖1

 

 

 

資料內(nèi)容:

 

 

1.RabbitMQ集群搭建
一般來(lái)說(shuō),如果只是為了學(xué)習(xí)RabbitMQ或者驗(yàn)證業(yè)務(wù)工程的正確性那么在本地環(huán)境或者測(cè)試環(huán)境
上使用其單實(shí)例部署就可以了,但是出于MQ中間件本身的可靠性、并發(fā)性、吞吐量和消息堆積能
力等問(wèn)題的考慮,在生產(chǎn)環(huán)境上一般都會(huì)考慮使用RabbitMQ的集群方案。
1.1 集群方案的原理
RabbitMQ這款消息隊(duì)列中間件產(chǎn)品本身是基于Erlang編寫(xiě),Erlang語(yǔ)言天生具備分布式特性(通
過(guò)同步Erlang集群各節(jié)點(diǎn)的cookie來(lái)實(shí)現(xiàn))。RabbitMQ本身不需要像ActiveMQ、Kafka那樣通
過(guò)ZooKeeper分別來(lái)實(shí)現(xiàn)HA方案和保存集群的元數(shù)據(jù)。

 

1.2 如下案例中使用多臺(tái)云服務(wù)器進(jìn)行集群搭建
主要參考官方文檔:https://www.rabbitmq.com/clustering.html
首先確保RabbitMQ運(yùn)行沒(méi)有問(wèn)題
1 #修改hostname
2 vim /etc/hostname
3 m1
4 m2
5 #修改hosts集群設(shè)備
6 vim /etc/hosts
7 192.168.132.137 m1
8 192.168.132.139 m2
9
10 #開(kāi)放防火墻 4369/5672/15672/25672端口
11 firewallcmd ‐‐zone=public ‐‐addport=4369/tcp ‐‐permanent
12 firewallcmd ‐‐zone=public ‐‐addport=5672/tcp ‐‐permanent13 firewallcmd ‐‐zone=public ‐‐addport=15672/tcp ‐‐permanent
14 firewallcmd ‐‐zone=public ‐‐addport=25672/tcp ‐‐permanent
15
16 #重載防火墻
17 firewallcmd ‐‐reload
18
19 #重啟服務(wù)器
20 reboot
21
22 #同步.erlang.coolie
23 find / ‐name *.cookie
24
25 #將文件發(fā)送至指定ip的服務(wù)器中,發(fā)送的過(guò)程中需要指定另一臺(tái)服務(wù)器的密碼信息
26 scp /var/lib/rabbitmq/.erlang.cookie 192.168.132.134:/var/lib/rabbitmq/
27
28 #兩個(gè)電腦啟動(dòng)MQ服務(wù)
29 rabbitserver
30
31
32 # 停止應(yīng)用 通過(guò)rabbitmqctl status 可以查看當(dāng)前rabbitmactl默認(rèn)操作的節(jié)點(diǎn)信息
33 rabbitmqctl stop_app
34
35 # 將當(dāng)前節(jié)點(diǎn)加入到一個(gè)集群中 默認(rèn)磁盤(pán)節(jié)點(diǎn)被加入的節(jié)點(diǎn)只要是集群中的一員,其他節(jié)點(diǎn)都能
夠馬上感受到集群節(jié)點(diǎn)的變化
36 rabbitmqctl join_cluster rabbit@m1
37
38 # 重新啟動(dòng)當(dāng)前節(jié)點(diǎn)
39 rabbitmqctl start_app
40
41 #查看集群信息
42 rabbitmqctl cluster_status