rabbitmq集群搭建

一、集群安裝

集群的搭建使用到了三臺服務(wù)器,分別是:

192.168.2.21 、192.168.2.22、192.168.2.23

為了方便,以上三臺服務(wù)器使用別名訪問,修改/etc/hosts文件,配置如下:

1.安裝erlang

安裝rabbitmq需要依賴erlang,所以先安裝erlang,這里使用rpm方式安裝,首先下載erlang,

# wget http://www.rabbitmq.com/releases/erlang/erlang-20.1-1.el6.x86_64.rpm,如果下載速度比較慢,可以訪問https://www.erlang-solutions.com/resources/download.html找到自己需要的版本下載,執(zhí)行命令安裝

# rpm? -ivh? esl-erlang_20.1-1~centos~7_amd64.rpm,如果出現(xiàn)以下錯誤

先安裝erlang相關(guān)依賴

# yum install epel-release

# yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl

再執(zhí)行 #?rpm? -ivh? esl-erlang_20.1-1~centos~7_amd64.rpm,

看一下是否安裝成功 #erl -version

2.安裝rabbitmq

先下載rabbitmq

# wget?rabbitmq-server-3.6.12-1.el6.noarch.rpm

同樣使用rpm方式安裝

# rpm -ivh --nodeps rabbitmq-server-3.6.12-1.el6.noarch.rpm

也可以使用yum方式安裝,

# yum install? rabbitmq-server-3.6.12-1.el6.noarch.rpm


二、集群搭建

1.啟動服務(wù)

#?systemctl start rabbitmq-server.service

查看節(jié)點狀態(tài)

#?systemctl status rabbitmq-server.service

查看節(jié)點集群狀態(tài):

#?rabbitmqctl cluster_status

2.從節(jié)點加入到主節(jié)點

將zk-01作為主節(jié)點,zk-02、zk-03加入到主節(jié)點中,

先停止zk-02服務(wù)

#?systemctl stop rabbitmq-server.service

由于三臺服務(wù)器需要搭建集群,所以使用的cookie信息是一樣的,服務(wù)在啟動的使用,會獲取.eralng.cookie文件的信息,加入到主節(jié)點時會去做認證,所以需要將主節(jié)點的.erlang.cookie文件拷貝到其他節(jié)點中,

#?scp /var/lib/rabbitmq/.erlang.cookie root@zk-02:/var/lib/rabbitmq/.erlang.cookie

由于安裝erlang和rabbitmq的方式均使用rpm方式安裝,所以安裝完成后,.erlang.cookie會自動生成,一般是在

/var/lib/rabbitmq目錄下,如果使用安裝包方式安裝,.erlang.cookie文件在根目錄下

使用后臺啟動zk-02

# rabbitmqctl -detached

將zk-02加入到zk-01中

# rabbitmqctl stop_app

# rabbitmqctl reset

# rabbitmqctl join_cluster rabbit@zk-01

# rabbitmqctl start_app

# rabbitmqctl cluster_status

可以看到zk-02已成功加入zk-01,查看zk-01集群狀態(tài)

同樣zk-03使用以上方式加入到zk-01中

3.修改集群中節(jié)點狀態(tài)

# rabbitmqctl stop_app

# rabbitmqctl change_cluster_node_type ram

# rabbitmqctl start_app

不指定時默認為disc(磁盤節(jié)點),可以指定為ram(內(nèi)存節(jié)點)

三、配置rabbitmq管理界面

1.啟用web插件

# rabbitmq-plugins enable rabbitmq_management

2.啟用日志跟蹤插件

# rabbitmq-plugins enable rabbitmq_tracing

# rabbitmqctl trace_on -p mq? //打開trace

# rabbitmqctl trace_off? //關(guān)閉trace

3.配置賬號

# rabbitmqctl add_user admin admin? //添加賬號

# rabbitmqctl set_user_tags admin administrator //添加權(quán)限

# rabbitmqctl? change_password? username? newpassword //修改用戶的密碼

# rabbitmqctl delete_user guest //刪除賬號

# rabbitmqctl? list_users //查看當前用戶列表

登錄管理界面

4.創(chuàng)建鏡像隊列

以上集群模式不能保證高可用,隊列中的內(nèi)容無法進行復制,當一個節(jié)點出現(xiàn)故障,只能重啟,為保證服務(wù)的高可用,需要創(chuàng)建鏡像隊列。

使用命令方式創(chuàng)建一個策略mirror_queue,策略模式為 all 即復制到所有節(jié)點,包含新增節(jié)點,策略正則表達式為 “^” 表示所有匹配所有隊列名稱。

# rabbitmqctl set_policy --priority 0 --apply-to queues mirror_queue "^queue_" '{"ha-mode":"all"}'

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

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

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