簡介html
經過 Erlang 的分佈式特性(經過 magic cookie 認證節點)進行 RabbitMQ 集羣,各 RabbitMQ 服務爲對等節點,即每一個節點都提供服務給客戶端鏈接,進行消息發送與接收。這些節點經過 RabbitMQ HA 隊列(鏡像隊列)進行消息隊列結構複製。本方案中搭建 3 個節點,而且都是磁盤節點(全部節點狀態保持一致,節點徹底對等),只要有任何一個節點可以工做,RabbitMQ 集羣對外就能提供服務。vim
1. 安裝erlang,參考:http://fedoraproject.org/wiki/EPEL/FAQ#howtousebash
rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
yum install erlang
2. 安裝rabbitmq服務器
# 下載rpm安裝包
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
# 安裝
yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
# 啓動rabbitmq服務
service rabbitmq-server start
# 查看服務狀態
service rabbitmq-server status
# 開放rabbitmq的使用,默認用戶guest,密碼guest
cd /etc/rabbitmq/ vi rabbitmq.config
# 再打開的窗口中新增內容以下:
[{rabbit, [{loopback_users, []}]}].
# 重啓服務
service rabbitmq-server stop service rabbitmq-server start
# 開放5672端口訪問
firewall-cmd --zone=public --add-port=5672/tcp --permanent firewall-cmd --reload
3. 開啓後臺UI管理插件cookie
rabbitmq-plugins enable rabbitmq_management firewall-cmd --zone=public --add-port=15672/tcp --permanent firewall-cmd --reload
# 以上完成後便可訪問:http://{host}:15672
4. 開啓消費記錄日誌功能app
# 啓用記錄插件tcp
rabbitmq-plugins enable rabbitmq_tracing分佈式
# 啓用跟蹤記錄oop
rabbitmqctl trace_onspa
# 以上配置完成後,便可在後臺管理界面 --> Admin --> Tracing 添加跟蹤配置:
# 點擊dev.log 便可查看日誌文件
5. 配置rabbitmq集羣節點
# 服務器:10.18.32.7(節點1) , 10.18.32.8(節點2)
(1). 配置hostname
# 在各節點服務器上配置hostname:rabbitmq-1,rabbitmq-2
vim /etc/hostname
(2). 配置host
# 在各節點服務器上配置host
vim /etc/hosts
(3). 設置各節點Cookie保持一致
service rabbitmq-server stop
chmod 700 /var/lib/rabbitmq/.erlang.cookie
echo -n "AZVOCZYZZBVFLBPTBXU" > /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
service rabbitmq-server start
(4). 開通防火牆集羣通信端口
firewall-cmd --permanent --add-port={4369/tcp,25672/tcp}
firewall-cmd --reload
(5). 將節點二、3...加入節點一中
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@server1
rabbitmqctl start_app
(6). 設置各節點鏡像策略
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
7. 後期維護版本升級
(1). 升級Erlang
# 移除舊版erlang,能夠經過 erl -version 查看當前安裝版本
yum remove erlang.*
yum remove erlang-*
# 自動安裝erlang的YUM源
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum install erlang
(2). 升級RabbitMQ
# 從官網(https://www.rabbitmq.com/install-rpm.html#with-rpm)找到最新版下載地址
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.2/rabbitmq-server-3.7.2-1.el7.noarch.rpm
rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.7.2-1.el7.noarch.rpm
# 以上步驟完成後,按照以上重啓服務便可
參考連接:
http://www.cnblogs.com/uptothesky/p/6094357.html
http://www.cnblogs.com/edward2013/p/5061511.html
https://www.jianshu.com/p/3a625aacd9aa