搭建配置rabbitmq叢集過程
由於公司很早就搭建了mq的環境,測試環境單節點單例項,最近頻繁出問題,包括落盤檔案過多導致磁碟爆滿等,所以決定將中介軟體伺服器做成叢集模式,為保證遷移後順暢使用,都是使用的跟之前一樣的老版本。
安裝erlang環境
tar -xvf otp_src_17.3.tar.gz
mkdir /usr/local/erlang
make && make install
ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl
ERLANG_HOME=/usr/local/erlang
PATH=$ERLANG_HOME/bin:$PATH
export ERLANG_HOME
export PATH
安裝編譯環境
yum install perl
yum install ncurses-devel
yum -y install gcc gcc-c++
yum -y install xmlto
yum install nc zip unzip
安裝rabbitmq
tar -zxvf rabbitmq-server-3.1.5.tar.gz
make
make install TARGET_DIR=/server/rabbitmq SBIN_DIR=/server/rabbitmq/sbin MAN_DIR=/server/rabbitmq/man
mkdir /etc/rabbitmq
./rabbitmq-plugins enable rabbitmq_management
組成叢集
同步三臺的.erlang.cookie,在/root下
分別啟動三臺 /server/rabbitmq/sbin/rabbitmq-server --detached
加入叢集,hosts檔案中的name要與主機名保持一致
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app
另外一臺同上,加入public1
檢視狀態
rabbitmqctl cluster_status
至此叢集搭建完成,沒有配置檔案,一切按系統預設的方式運轉,這裡我需要修改落盤檔案的儲存位置到一個大一點的硬碟,新增配置檔案
vim /etc/rabbitmq/rabbitmq-env.conf
內容:
RABBITMQ_MNESIA_BASE=/server/rabbitmq/data/mnesia
RABBITMQ_LOG_BASE=/server/rabbitmq/data/logs
將啟動命令寫到/etc/rc.local後發現開機不能自啟,檢視日誌提示節點拒絕連線,分析啟動命令後發現開機自啟--/home後邊沒有指定cookie檔案的位置,但手動執行會自動指定,不知道是什麼原因,需探究一下Linux開機自啟的原理,暫時忽略掉這個問題,修改rc.local為
su - root -c "source /etc/profile && /server/rabbitmq/sbin/rabbitmq-server --detached &"
至此徹底完成