优选主流主机商
任何主机均需规范使用

Centos 7.3 下 RabbitMQ 分布式集群搭建详细教程及实战案例

本文介绍了Centos7.3 RabbitMQ分布式集群搭建示例,分享给大家,具体如下:

注意事项

centos 7.x 关闭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

不想关闭防火墙,就开放15672端口,设置之后可以通过网页方式管理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 环境

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是否正常启动。

创建集群:

首先搞个密钥认证:

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节点的cookie, 并复制到其他节点(节点之间通过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

逐个启动节点

1 rabbitmq-server -detached

建立集群

分别在rabbitMQ02和rabbitMQ03上面执行即可

1 2 3 4 5 6 7 rabbitmqctl stop_app   rabbitmqctl reset   rabbitmqctl join_cluster rabbit@fz-rabbitMQ01   rabbitmqctl start_app

最后通过rabbitmqctl cluster_status查看集群的状态信息:

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”的信息,说明在该节点上web管理插件还未启用。

3个节点都需要运行:

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

解决方案:执行如下两条命令:

1 2 # /sbin/service rabbitmq-server stop # /sbin/service rabbitmq-server start

然后再次执行:即可

1 2 3 4 rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@fz-rabbitMQ01 rabbitmqctl start_app

 

未经允许不得转载:搬瓦工中文网 » Centos 7.3 下 RabbitMQ 分布式集群搭建详细教程及实战案例