1. 程式人生 > >RabbitMQ映象佇列叢集搭建、與SpringBoot整合

RabbitMQ映象佇列叢集搭建、與SpringBoot整合

映象模式

叢集模式非常經典的就是Mirror映象模式,保證100%資料不丟失,在實際工作中也是用的最多的,並且實現叢集比較的簡單。 Mirror映象佇列,目的是為了保證 RabbitMQ 資料的高可靠性解決方案,主要就是實現資料的同步,一般來講2--3個節點實現資料同步(對於100%資料可靠性解決方案一般是3節點)
感興趣的胖友可以體驗一哈新的閱讀地址:http://www.zhouhong.icu/post/142  (*^▽^*)

1 前提準備

1.1 服務節點分配

伺服器IP hostname 節點說明 管控臺地址
192.168.2.121 zhouhong121 rabbitmq master 5672 http://192.168.2.121:15672
192.168.2.122 zhouhong122 rabbitmq slave 5672 http://192.168.2.122:15672
192.168.2.123 zhouhong123 rabbitmq slave 5672 http://192.168.2.123:15672

2 叢集搭建

前提條件:修改121、122、123三臺伺服器的 hostname 並且可以使用hostname 兩兩之間 ping 通。
  • 修改每臺伺服器的 hostname

vim /etc/hostname
## 修改對應的名字,比如:
zhouhong121
  • 更改每臺伺服器的 hosts

vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.121 zhouhong121
192.168.2.122 zhouhong122
192.168.2.123 zhouhong123
  •  測試,用122的hostname ping 123

2.1 叢集節點安裝
RabbitMQ下載:

rpm -ivh erlang-23.0.4-1.el7.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm​
 如果下載卡頓請使用我下載好的網盤進行下載即可
連結:https://pan.baidu.com/s/1diapYC19UlDy4G-4lgZWHA
提取碼:jf5r
複製這段內容後開啟百度網盤手機App,操作更方便哦

因為之前在121這檯安裝過:所有在另外兩臺上面快速安裝即可,詳細的安裝請參照: https://www.cnblogs.com/Tom-shushu/p/14503021.html http://www.zhouhong.icu/post/141 

1、安裝
rpm -ivh erlang-23.0.4-1.el7.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm​
2、啟動
systemctl start rabbitmq-server
3、安裝web管控臺
rabbitmq-plugins enable rabbitmq_management
4、新增使用者
sudo rabbitmqctl add_user admin admin
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin "." "." ".*"  
5、重啟
systemctl start rabbitmq-server
rabbitmq-plugins enable rabbitmq_management
 瀏覽器以admin登入檢查安裝是否成功:
http://192.168.2.121:15672/ http://192.168.2.122:15672/ http://192.168.2.123:15672/

2.2 檔案同步(注意:.erlang.cookie為隱藏檔案,需要使用 -a 檢視)

選擇121、122、123任意一個節點為Master(這裡選擇71為Master),也就是說我們需要把121的Cookie檔案同步到122、123節點上去,進入/var/lib/rabbitmq目錄下,把/var/lib/rabbitmq/.erlang.cookie檔案的許可權修改為777,原來是400;然後把.erlang.cookie檔案copy到各個節點下;最後把所有cookie檔案許可權還原為400即可。
//進入目錄修改許可權;遠端copy122、123節點
cd /var/lib/rabbitmq/
chmod 777 /var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie 192.168.2.122:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie 192.168.2.123:/var/lib/rabbitmq/
// 每臺伺服器為預設修改許可權
chmod 400 /var/lib/rabbitmq/.erlang.cookie
2.3 組成叢集
2.3.1 停止服務
我們首先停止3個節點的服務:(這裡不能使用原來的命令:/etc/init.d/rabbitmq-server stop)

rabbitmqctl stop
2.3.2 組成叢集操作
接下來我們就可以使用叢集命令,配置71、72、73為叢集模式,3個節點(71、72、73)執行啟動命令,後續啟動叢集使用此命令即可。

rabbitmq-server -detached
2.3.3 slave加入叢集操作(重新加入叢集也是如此,以最開始的主節點為加入節點)