RabbitMQ安裝及集群搭建

RabbitMQ是一個(gè)開源的消息隊(duì)列中間件,服務(wù)器端用Erlang語言編寫。因此,在進(jìn)行RabbitMQ環(huán)境安裝時(shí),需先安裝Erlang環(huán)境。安裝過程需要注意的是,RabbitMQ的版本和Erlang的版本兼容問題,否則會(huì)導(dǎo)致RabbitMQ安裝失敗。這里RabbitMQ采用3.7.8(rabbitmq-server-generic-unix-3.7.8.tar.xz),Erlang采用otp_src_21.1.tar.gz。本文針對centos7服務(wù)器,搭建RabbitMQ集群。

1、Erlang環(huán)境安裝(源碼編譯)

首先下載好Erlang源碼包otp_src_21.1.tar.gz,放在/usr/loacl/目錄下(個(gè)人習(xí)慣,安裝的軟件均放在此目錄),然后執(zhí)行以下命令:

cd /usr/local/? ? ? ? # 進(jìn)入erlang源碼包所在路徑

tar -xvf otp_src_21.1.tar.gz? ? ? ? # 解壓erlang源碼包

mkdir erlang? ? # 新建文件夾,存放erlang編譯后的可執(zhí)行文件及依賴包

進(jìn)入解壓后的文件目錄 otp_src_21.1

cd otp_src_21.1? ? # 進(jìn)入解壓后目錄

執(zhí)行config命令,

./configure --prefix=/usr/local/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac?

執(zhí)行編譯和安裝命令

make && make install

編輯profile文件

vi /etc/profile

配置erlang環(huán)境變量

export ERALNG_HOME=/usr/local/erlang

export PATH=$ERLANG_HOME/bin:$PATH

退出并保存profile,立即生效環(huán)境變量配置

source /etc/profile

查看erlang是否配置完畢,執(zhí)行命令

erl

2、RabbitMQ安裝

將下載好的RabbitMQ安裝包,解壓至/usr/local/目錄下,

tar -xvf?rabbitmq-server-generic-unix-3.7.8.tar.xz

進(jìn)入解壓后的目錄

cd?rabbitmq_server-3.7.8

配置環(huán)境變量

vi /etc/profile

輸入:

export RABBITMQ_HOME=/urs/local/rabbitmq_server-3.7.8

export PATH=$RABBITMQ_HOME/sbin:$PATH

生效環(huán)境變量配置

source /etc/profile

配置rabbitmq配置文件

找到rabbitmq-server-master.zip,并解壓,將doc目錄下的配置文件,拷貝至rabbitmq_server-3.7.8/etc/rabbitmq目錄下。

進(jìn)入/usr/local/rabbitmq_server-3.7.8/etc/rabbitmq目錄,生成rabbitmq.conf配置文件

cp rabbitmq.conf.example rabbitmq.conf

編輯rabbitmq.conf文件,打開loopback_users.guest = false注釋,以遍guest賬號可通過ip訪問rabbitmq頁面

至此,rabbitmq環(huán)境已安裝完畢,目前還是單機(jī)版本。

執(zhí)行rabbitmq-server -detached啟動(dòng)rabbitmq服務(wù)

執(zhí)行rabbitmq-plugins enable rabbitmq_management開啟管理頁面

可在瀏覽器輸入:http://ip:15672,打開rabbitmq管理頁面

3、rabbitmq集群搭建

rabbitmq是基于Erlang的,而Erlang是天然支持分布式的,通過.erlang.cookie解決分布式問題,因此首先要保證各rabbitmq節(jié)點(diǎn)的.erlang.cookie的文件內(nèi)容一致。

通過以下命令查找單機(jī)的.erlang.cookie文件所在目錄

find / -name ".erlang.cookie"

這個(gè)文件在我的目錄是/root/下。

將該文件分別拷貝至集群其他服務(wù)器,通過以下命令,會(huì)要求輸入目的服務(wù)器的密碼

scp /root/.erlang.cookie root@192.168.11.13 /root/? ? ? ? # 這里寫IP,也可通過hosts文件中配置的域名

其次,每臺(tái)服務(wù)器需要命名域名,且要把同一個(gè)集群下的所有服務(wù)器域名都配置。比如我這里用三臺(tái)服務(wù)器組成集群,其IP分別為:

192.168.11.12、192.168.11.13、192.168.11.14

那么在三臺(tái)服務(wù)器的/etc/hosts文件中均需增加以下內(nèi)容:

192.168.11.12? ? mqnode1

192.168.11.13? ? mqnode2

192.168.11.14? ? mqnode3

同時(shí)需要查看三臺(tái)服務(wù)器的hostname,避免都是localhost,可通過uname -a命令查看

如果有存在localhost的情況,可通過hostname命令修改,修改的內(nèi)容建議和/etc/hosts文件中配置的一致,比如需將192.168.11.12服務(wù)器的hostname修改為mqnode1,則通過以下命令:

hostname mqnode1

然后再通過uname -a命令查看,192.168.11.12服務(wù)器的hostname已經(jīng)修改為mqnode1

至此,集群環(huán)境已配置好,接下來進(jìn)行集群搭建

本文以mqnode1為主節(jié)點(diǎn),mqnode2,mqnode3為從節(jié)點(diǎn)。三個(gè)節(jié)點(diǎn)均需執(zhí)行以下命令啟動(dòng)rabbitmq

rabbitmq-server -detached

關(guān)閉節(jié)點(diǎn)2、3app

rabbitmqctl stop_app

將接點(diǎn)2、3加入到節(jié)點(diǎn)1

rabbitmqctl join_cluster -- ram rabbit@mqnode1? ?# --ram 說明當(dāng)前節(jié)點(diǎn)已內(nèi)存模式運(yùn)行

啟動(dòng)節(jié)點(diǎn)2、3app

rabbitmqctl start_app

進(jìn)入管理頁面,可以看到有三個(gè)節(jié)點(diǎn),如下圖:


rabbitmq集群

注意:當(dāng)RabbitMQ安裝后,可以打開管理頁面,但登錄時(shí)報(bào)500錯(cuò)誤,可查看rabbitmq安裝目錄的./var/rabbitmq/rabbit@node.log日志,若報(bào)以下錯(cuò)誤:libcrypto.so.1.0.0: cannot open shared object file: No such file or directory,如圖

rabbitmq管理頁面登錄錯(cuò)誤

則需要查看當(dāng)前服務(wù)器openssl版本,通過openssl version命令查看,我這里的版本是0.9.8,但這里要求1.0.0。因此需要升級openssl版本,升級方法可以參考:Linux下升級openssl

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容