rabbitmq叢集模式安裝
環境 centos 7.4
172.16.91.217
172.16.91.218
安裝包版本
http://www.erlang.org/download/otp_src_18.3.tar.gz
otp_src_18.3.tar.gz
http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xz
rabbitmq-server-generic-unix-3.6.1.tar
兩臺機器 同時執行
安裝 erlang
把 安裝 包 上傳 到 /usr/local/src/
cd /usr/local/src/
tar -xzvf otp_src_18.3.tar.gz
mv otp_src_18.3 /usr/local/
cd /usr/local/otp_src_18.3/
./configure --prefix=/usr/local/erlang
make && make install
配置 erlang 環境變數
vim /etc/profile //在底部新增以下內容
#set erlang environment
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
source /etc/profile //生效
在控制 臺輸入 erl 命令, 如果 進入 erlang 的shell 則證明安裝成功
安裝rabbitmq
cd /usr/local/src/
xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.6.1.tar
mv rabbitmq_server-3.6.1/ rabbitmq
mv rabbitmq /usr/local/
配置 rabbitmq 環境變數
vim /etc/profile
#set rabbitmq environment
export PATH=$PATH:/usr/local/rabbitmq/sbin
source /etc/profile
啟動服務:
rabbitmq-server -detached //啟動rabbitmq,-detached代表後臺守護程序方式啟動。
檢視 狀態
rabbitmqctl status
rabbitmq 叢集操作
這裡是 使用 rabbitmqctl 配置 rabbitmq 叢集
操作 是 先 確保 ,所有 rabbitmq 都關閉
1 cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.91.217 217-centos
172.16.91.218 218-centos
首先 要保證 兩個 域名 能夠互通
2 編輯 rabbitmq 的 cookie檔案,以確保 各個 節點 的cookie 檔案使用
的是用一個值
vim $HOME/.erlang.cookie
把主節點 的 cookie 值 複製到從節點
3 然後啟動 所有 rabbitmq
rabbitmq-server -detached
4 然後 在 從 節點上 執行 以下命令,逐個的加入主節點,成為一個叢集
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app
5 然後 檢視 叢集 資訊
[[email protected] bin]# rabbitmqctl cluster_status
Cluster status of node '[email protected]' ...
[{nodes,[{disc,['[email protected]','[email protected]']}]},
{running_nodes,['[email protected]']},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{'[email protected]',[]}]}]
錯誤排查:
當執行 rabbitmqctl join_cluster [email protected]
出現 Autentication failed異常
因為 我 把 217-centos 錯誤
寫成 217_centos,造成兩個主機互不相通