Rabbit安装(单机及集群,阿里云) (3)

在这里插入图片描述

常见Bug修复 集群节点添加失败

也就是执行以下语句时,出现异常:

rabbitmqctl join_cluster rabbit@node1 --ram

异常截图:

在这里插入图片描述

其实,根本原因就是由于RabbitMQ的节点名称造成的。

其中异常信息,已经明确地说了:Hostname mismatch:XXXXXX

就是由于阿里云的默认HostName是随机生成的,而RabbitMQ的节点名,默认采用了服务器的HostName。

解决方案有两个:

如之前提到的,直接修改阿里云服务器的HostName,一劳永逸。

修改RabbitMQ的默认节点名。在/etc/rabbitmq/rabbitmq-env.conf(初始不存在)增加以下内容:

NODENAME=node1 节点停止应用失败/无法查看节点集群信息

也就是执行以下语句时,出现异常:

rabbitmqctl stop_app

rabbitmqctl cluster_status

异常截图:

在这里插入图片描述


在这里插入图片描述

其实这是由于erlang.cookie是在RabbitMQ启动后替换,而导致的冲突。

解决办法:

通过以下命令重启服务即可

systemctl restart rabbitmq-server RabbitMQ普通模式(单机多节点安装)

由于这个不涉及多个真实服务器,所以比较简单。我就不再赘述。

简单引用一下WizMime大佬的过程。

准备工作

准备一台已经安装好RabbitMQ的机器

启动RabbitMQ 修改默认节点名(非必要),在/etc/rabbitmq/rabbitmq-env.conf增加以下内容 NODENAME=rabbit1 RabbitMQ单机多节点时需要改为手动启动,先停止运行中的RabbitMQ服务。 sudo systemctl stop rabbitmq-server 启动第一个节点 rabbitmq-server -detached 启动第二个节点 RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached 启动第三个节点 RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit3 rabbitmq-server -detached 将第二个节点rabbit2加入到集群中 停止rabbit2的应用 rabbitmqctl -n rabbit2 stop_app

PS:-n表示针对特定节点进行操作

重置 rabbit2 的设置 rabbitmqctl -n rabbit2 reset rabbit2 节点加入到 rabbit1的集群中 rabbitmqctl -n rabbit2 join_cluster rabbit1 --ram 启动 rabbit2 节点 rabbitmqctl -n rabbit2 start_app rabbit3类似操作 校验

通过

rabbitmqctl cluster_status

查看集群状态,看到{running_nodes,[rabbit3@node1,rabbit2@node1,rabbit1@node1]}说明节点已启动成功。

PS:同样也可以从Web管理界面查看。

防火墙

注意防火墙相关配置,尤其这次增加了许多端口。

sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent sudo firewall-cmd --zone=public --add-port=5673/tcp --permanent sudo firewall-cmd --zone=public --add-port=25673/tcp --permanent sudo firewall-cmd --zone=public --add-port=15673/tcp --permanent sudo firewall-cmd --zone=public --add-port=5674/tcp --permanent sudo firewall-cmd --zone=public --add-port=25674/tcp --permanent sudo firewall-cmd --zone=public --add-port=15674/tcp --permanent 镜像队列模式集群

其实就是依赖之前实现的多主集群转发数据模式,再通过Web管理页面的一些设置即可实现。

所以不存在部署方面的问题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppdfg.html