欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Centos7.3 RabbitMQ分布式集群搭建示例

程序员文章站 2022-05-11 17:51:19
本文介绍了centos7.3 rabbitmq分布式集群搭建示例,分享给大家,具体如下: 注意事项 centos 7.x 关闭firewall 三台机器:...

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

注意事项

centos 7.x 关闭firewall

三台机器:

172.17.250.97   rabbimq01
172.17.250.98   rabbimq03
172.17.250.99   rabbimq02

配置 hosts

172.17.250.97 fz-rabbitmq01
172.17.250.99 fz-rabbitmq02
172.17.250.98 fz-rabbitmq03

$ systemctl stop firewalld.service # 停止firewall

不想关闭防火墙,就开放15672端口,设置之后可以通过网页方式管理mq

安装安装iptables防火墙

yum install iptables-services

添加配置

iptables -i input -p tcp --dport 5672 -j accept
iptables -i input -p tcp --dport 15672 -j accept

保存配置

service iptables save

重启

systemctl restart iptables.service

设置开机自启动

systemctl enable iptables.service

安装

安装 erlang

rabbitmq 安装需要依赖 erlang 环境

$ 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

$ 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运行:

rabbitmq-server -detached

之后运行

rabbitmqctl status

查看rabbitmq是否正常启动。

创建集群:

首先搞个密钥认证:

[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中。

[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

逐个启动节点

rabbitmq-server -detached

建立集群

分别在rabbitmq02和rabbitmq03上面执行即可

rabbitmqctl stop_app 

rabbitmqctl reset 

rabbitmqctl join_cluster rabbit@fz-rabbitmq01 

rabbitmqctl start_app

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

[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个节点都需要运行:

[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

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

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

然后再次执行:即可

rabbitmqctl stop_app 
rabbitmqctl reset 
rabbitmqctl join_cluster rabbit@fz-rabbitmq01 
rabbitmqctl start_app

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。