本文介紹了Centos7.3 RabbitMQ分布式集群搭建示例,分享給大家,具體如下:
注意事項
centos 7.x 關(guān)閉firewall
三臺機器:
1
2
3
|
172.17.250.97 rabbiMQ01 172.17.250.98 rabbiMQ03 172.17.250.99 rabbiMQ02 |
配置 hosts
1
2
3
|
172.17.250.97 fz-rabbitMQ01 172.17.250.99 fz-rabbitMQ02 172.17.250.98 fz-rabbitMQ03 |
1
|
$ systemctl stop firewalld.service # 停止firewall |
不想關(guān)閉防火墻,就開放15672端口,設置之后可以通過網(wǎng)頁方式管理MQ
安裝安裝iptables防火墻
1
|
yum install iptables-services |
添加配置
1
2
|
iptables -I INPUT -p tcp --dport 5672 -j ACCEPT iptables -I INPUT -p tcp --dport 15672 -j ACCEPT |
保存配置
1
|
service iptables save |
重啟
1
|
systemctl restart iptables.service |
設置開機自啟動
1
|
systemctl enable iptables.service |
安裝
安裝 Erlang
RabbitMQ 安裝需要依賴 Erlang 環(huán)境
1
2
3
4
|
$ cd /usr/local/src $ wget http: //www .rabbitmq.com /releases/erlang/erlang-19 .0.4-1.el7.centos.x86_64.rpm $ yum install erlang-19.0.4-1.el7.centos.x86_64.rpm -y |
安裝 RabbitMQ
1
2
3
|
$ cd /usr/local/src $ wget http: //www .rabbitmq.com /releases/rabbitmq-server/v3 .6.10 /rabbitmq-server-3 .6.10-1.el7.noarch.rpm $ yum install rabbitmq-server-3.6.10-1.el7.noarch.rpm -y |
僅僅rabbitMQ01運行:
1
|
rabbitmq-server -detached |
之后運行
1
|
rabbitmqctl status |
查看rabbitmq是否正常啟動。
創(chuàng)建集群:
首先搞個密鑰認證:
1
2
3
4
5
|
[root@fz-rabbitMQ01 src] # ssh-keygen [root@fz-rabbitMQ01 src] # ssh-copy-id -pXXXXX -i ~/.ssh/id_rsa.pub [email protected] [root@fz-rabbitMQ01 src] # ssh-copy-id -pXXXXX -i ~/.ssh/id_rsa.pub [email protected] |
讀取rabbitMQ01節(jié)點的cookie, 并復制到其他節(jié)點(節(jié)點之間通過cookie確定相互是否可通信)。 cookie存放在/var/lib/rabbitmq/.erlang.cookie或者$HOME/.erlang.cookie中。
1
2
3
4
5
6
|
[root@fz-rabbitMQ01 src] # scp -PXXXXX /var/lib/rabbitmq/.erlang.cookie 172.17.250.99:/var/lib/rabbitmq /etc/bashrc :行94: soruce: 未找到命令 .erlang.cookie 100% 20 0.0KB /s 00:00 [root@fz-rabbitMQ01 src] # scp -PXXXXX /var/lib/rabbitmq/.erlang.cookie 172.17.250.98:/var/lib/rabbitmq /etc/bashrc :行94: soruce: 未找到命令 .erlang.cookie |
逐個啟動節(jié)點
1
|
rabbitmq-server -detached |
建立集群
分別在rabbitMQ02和rabbitMQ03上面執(zhí)行即可
1
2
3
4
5
6
7
|
rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@fz-rabbitMQ01 rabbitmqctl start_app |
最后通過rabbitmqctl cluster_status查看集群的狀態(tài)信息:
1
2
3
4
5
6
7
8
9
10
11
|
[root@fz-rabbitMQ01 src]# rabbitmqctl cluster_status Cluster status of node 'rabbit@fz-rabbitMQ01' [{nodes,[{disc,['rabbit@fz-rabbitMQ01','rabbit@fz-rabbitMQ02', 'rabbit@fz-rabbitMQ03']}]}, {running_nodes,['rabbit@fz-rabbitMQ03','rabbit@fz-rabbitMQ02', 'rabbit@fz-rabbitMQ01']}, {cluster_name,<<"[email protected]">>}, {partitions,[]}, {alarms,[{'rabbit@fz-rabbitMQ03',[]}, {'rabbit@fz-rabbitMQ02',[]}, {'rabbit@fz-rabbitMQ01',[]}]}] |
在訪問web(http://xxx.xxx.xxx.xxx:15672)時, 如果在Overview中的Nodes部分看到“Node statistics not available”的信息,說明在該節(jié)點上web管理插件還未啟用。
3個節(jié)點都需要運行:
1
2
3
4
5
6
7
8
9
10
|
[root@fz-rabbitMQ01 src]# rabbitmq-plugins enable rabbitmq_management The following plugins have been enabled: amqp_client cowlib cowboy rabbitmq_web_dispatch rabbitmq_management_agent rabbitmq_management Applying plugin configuration to rabbit@fz-rabbitMQ01... started 6 plugins. |
遇到的問題
Error: unable to connect to node '[email protected]': nodedown
解決方案:執(zhí)行如下兩條命令:
1
2
|
# /sbin/service rabbitmq-server stop # /sbin/service rabbitmq-server start |
然后再次執(zhí)行:即可
1
2
3
4
|
rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@fz-rabbitMQ01 rabbitmqctl start_app |
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.okay686.cn/1079.html