一、集群安裝
集群的搭建使用到了三臺服務(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"}'