二、Linux部署RabbitMQ叢集

yangleiyu發表於2021-11-12

RabbitMQ官方網站非常詳細,以下只是本人學習過程的整理

 

一、Windows部署RabbitMQ:https://www.cnblogs.com/yangleiyu/p/15539618.html
二、Linux部署RabbitMQ叢集:https://www.cnblogs.com/yangleiyu/p/15539698.html
三、.Net Core使用RabbitMQ各種模式:會在後續文章介紹

 

1)、環境準備

ip

hostname

10.13.184.83

node1

10.13.182.239

node2

1、關閉防火牆或關閉對應埠防火牆

此處省略

2、設定兩臺機器的hostname

A、檢視當前hostname

hostnamectl

 

B、修改hostname

hostnamectl set-hostname node1

hostnamectl set-hostname node2

C、檢視hostname

 

 

2)、安裝Erlang

兩臺機器都需要

1、安裝依賴

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

2、下載安裝包

wget http://erlang.org/download/otp_src_22.0.tar.gz

或手動拷貝安裝包至當前操作目錄

 

連結:https://pan.baidu.com/s/1OPilvpu98Rr4Bcm-Oq9rTg
提取碼:0716

3、解壓

tar -zxvf otp_src_22.0.tar.gz

4、移動

mv otp_src_22.0 /usr/local/

5、切換目錄

cd /usr/local/otp_src_22.0/

6、建立安裝目錄

mkdir ../erlang

7、配置安裝路徑

./configure --prefix=/usr/local/erlang

8、安裝

make install

9、新增環境變數

echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile

10、環境變數生效

source /etc/profile

11、測試安裝結果

erl

 

3)、安裝RabbitMQ

兩臺機器都需要

1、下載安裝包

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz

或手動拷貝安裝包至當前操作目錄

 

連結:https://pan.baidu.com/s/1UcyI2_tjTsjT1yBJ2RzKnQ
提取碼:0716

2、安裝xz

已安裝可忽略此步驟

yum install -y xz

3、第一次解壓

/bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz

4、第二次解壓

tar -xvf rabbitmq-server-generic-unix-3.7.15.tar

5、移動目錄

mv rabbitmq_server-3.7.15/ /usr/local/

6、修改資料夾名

mv /usr/local/rabbitmq_server-3.7.15  rabbitmq

7、配置環境變數

echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile

8、環境變數生效

source /etc/profile

4)、啟動

1、啟動

rabbitmq-server –detached

2、檢視狀態

rabbitmqctl status

3、檢視叢集狀態

rabbitmqctl cluster_status

4、停止

rabbitmqctl stop

5、檢視程式

ps -ef | grep rabbitmq

5)、開啟web外掛

1、開啟外掛

rabbitmq-plugins enable rabbitmq_management

2、瀏覽

IP:15672

 

預設賬號密碼:guest guest(這個賬號只允許本機訪問)

6)、建立賬號

1、檢視所有使用者

rabbitmqctl list_users

2、新增使用者

rabbitmqctl add_user yly 123456

3、配置許可權

rabbitmqctl set_permissions -p "/" yly ".*" ".*" ".*"

4、檢視使用者許可權

rabbitmqctl list_user_permissions yly

5、設定tag

rabbitmqctl set_user_tags yly administrator

6、刪除使用者

可不刪除,此步驟可忽略

rabbitmqctl delete_user guest

 

7)、登入

 

8)、開始配置叢集

1、配置兩臺機器的hosts

vim /etc/hosts修改後使用:wq!儲存並退出

 

2、停止服務

node1&node2:rabbitmqctl stop

3、設定erlang cookie

這裡將 node1 的該檔案複製到 node2,由於這個檔案許可權是 400為方便傳輸,先修改許可權,所以需要先修改 node2中的該檔案許可權為 777。

叢集各節點的cookie必須保持一致,否則無法通訊。

erlang是通過主機名來連線服務,必須保證各個主機名之間可以ping通。可以通過編輯/etc/hosts來手工新增主機名和IP對應關係。如果主機名ping不通,rabbitmq服務啟動會失敗。

A、設定777許可權

node2:chmod 777 /root/.erlang.cookie

注意.erlang.cookie的目錄,也有可能在/var/lib/rabbitmq/.erlang.cookie

B、拷貝cookie檔案

將node1節點上的cookie拷貝至node2

node1:scp /root/.erlang.cookie node2:/root/

拷貝過程中會輸yes和密碼

C、最後將許可權和所屬使用者/組修改回來

node2:chmod 400 /root/.erlang.cookie

node2:chown root /root/.erlang.cookie

node2:chgrp root /root/.erlang.cookie

9)、執行各節點

node1&node2:rabbitmqctl stop

node1&node2:rabbitmq-server –detached

10)、組成叢集

A、檢視叢集

這時候還沒有組成叢集

 

B、將node2加入叢集

node2:rabbitmqctl stop_app

node2:rabbitmqctl join_cluster rabbit@node1

node2:rabbitmqctl start_app

如果此處還有node3,node4等,則只需要加入node1,其他節點自動連線通訊

C、驗證叢集狀態

 

 

 

恭喜,叢集搭建成功!

相關文章