RabbitMQ映象佇列叢集搭建、與SpringBoot整合
阿新 • • 發佈:2021-03-13
映象模式
叢集模式非常經典的就是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
如果下載卡頓請使用我下載好的網盤進行下載即可
因為之前在121這檯安裝過:所有在另外兩臺上面快速安裝即可,詳細的安裝請參照: https://www.cnblogs.com/Tom-shushu/p/14503021.html http://www.zhouhong.icu/post/141連結:https://pan.baidu.com/s/1diapYC19UlDy4G-4lgZWHA 提取碼:jf5r 複製這段內容後開啟百度網盤手機App,操作更方便哦
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加入叢集操作(重新加入叢集也是如此,以最開始的主節點為加入節點)