Ubuntu单机多节点RabbitMQ集群怎么搭建?端口号冲突如何解决?

 更新时间:2026年07月27日 10:42:07   作者:新绿MEHO  
想知道如何在Ubuntu或CentOS上单机部署多节点RabbitMQ集群吗?本文详细讲解从安装到集群配置的全过程,包括节点名称、AMQP协议端口(如5672)和Web管理界面端口(如15672)的设置,以及常见复制命令时横线丢失等坑点,助你轻松搭建高可用消息队列集群

单机多节点搭建集群

Ubuntu

安装RabbitMQ

安装RabbitMQ的步骤在之前的博客中已经写过了。

查看RabbitMQ的状态

rabbitmqctl status # 查看 RabbitMQ 状态

会在结果的第一行看到节点的名称,比如:

端⼝号介绍:

  • 25672这是Erlang分布式节点通信的默认端⼝, Erlang是RabbitMQ的底层通信协议.
  • 15672这是 Web管理界⾯的默认端⼝, 通过这个端⼝可以访问RabbitMQ的Web管理控制台, ⽤于查看和管理消息队列.
  • 5672这是 AMQP (Advanced Message Queuing Protocol) 协议的默认端⼝, ⽤于客⼾端与
  • RabbitMQ服务器之间的通信.

再启动两个节点

现在已经安装的RabbitMQ端⼝号是5672, 15672

再启动两个RabbitMQ服务, 节点名称和端⼝号分别设置为:

Node nameAMQP协议端口号Web管理界面端口号
rabbit2567315673
rabbit3567415674

启动命令如下:

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

然后可以通过IP+15673和IP+15674访问管理界面看是否启动成功。

搭建集群

停止服务并重置

rabbitmqctl -n rabbit2 stop_app
rabbitmqctl -n rabbit2 reset
rabbitmqctl -n rabbit3 stop_app
rabbitmqctl -n rabbit3 reset

把node2,node3节点加入集群

rabbitmqctl -n rabbit2 join_cluster rabbit@hcss-ecs-2618
rabbitmqctl -n rabbit3 join_cluster rabbit@hcss-ecs-2618

重启rabbit2,rabbit3

rabbitmqctl -n rabbit2 start_app
rabbitmqctl -n rabbit3 start_app

查看集群状态

rabbitmqctl cluster_status -n rabbit

可以通过主节点的管理界面,看到集群其它节点的状态

Centos

安装RabbitMQ

安装RabbitMQ的详细步骤已经在之前的博客中写过了。

查看集群状态

rabbitmqctl status # 查看 RabbitMQ 状态

可以在结果中第一行看到节点名称

再启动两个节点

现在已经安装的RabbitMQ端⼝号是5672, 15672

再启动两个RabbitMQ服务, 节点名称和端⼝号分别设置为:

Node nameAMQP协议端口号Web管理界面端口号
rabbit2567315673
rabbit3567415674

启动命令如下:

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

注意上面的命令在复制的时候如下图所示:

因为我在复制上面的命令时发现多次都没有启动成功,找了好久才发现在复制的时候,一个-横线在复制后没有了。

可以通过IP+端口号进行访问看是否启动成功,也可以使用netstat -anp | grep 56来查看是否启动成功。

搭建集群

停止服务并重置

rabbitmqctl -n rabbit2 stop_app
rabbitmqctl -n rabbit2 reset
rabbitmqctl -n rabbit3 stop_app
rabbitmqctl -n rabbit3 reset

把rabbit2和rabbit3加入集群

rabbitmqctl -n rabbit2 join_cluster rabbit@iZbp190qbav81ruf46b5w7Z
rabbitmqctl -n rabbit3 join_cluster rabbit@iZbp190qbav81ruf46b5w7Z

重启rabbit2和rabbit3

rabbitmqctl -n rabbit2 start_app
rabbitmqctl -n rabbit3 start_app

查看集群状态

rabbitmqctl cluster_status -n rabbit

通过管理界面可以查看到集群信息

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Spring中的AOP及AspectJ五大通知注解

    详解Spring中的AOP及AspectJ五大通知注解

    这篇文章主要介绍了详解Spring中的AOP及AspectJ五大通知注解,AOP面向切面编程是一种新的方法论,是对传统OOP面向对象编程的补充,AOP 的主要编程对象是切面(aspect),切面模块化横切关注点,需要的朋友可以参考下
    2023-08-08
  • SpringBoot整合Mybatis之各种查询、模糊查询、批量删除、动态表名操作

    SpringBoot整合Mybatis之各种查询、模糊查询、批量删除、动态表名操作

    这篇文章主要介绍了SpringBoot整合Mybatis之各种查询、模糊查询、批量删除、动态表名,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Springboot的Mapper中添加新的SQL语句方法详解

    Springboot的Mapper中添加新的SQL语句方法详解

    在如今的软件开发界,Spring Boot可是非常受欢迎的框架哦,尤其是在微服务和RESTful API的构建上,下面给大家介绍我们如何为Spring Boot项目中的Mapper添加新的SQL语句吧,感兴趣的朋友一起看看吧
    2025-04-04
  • springboot配置mybatis和事务管理方式

    springboot配置mybatis和事务管理方式

    这篇文章主要介绍了springboot配置mybatis和事务管理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • java17、javafx项目混淆和加密方式

    java17、javafx项目混淆和加密方式

    文章介绍了Java17与JavaFX项目使用ProGuard进行混淆及Xjar加密的流程,包括依赖配置、混淆规则定义、构建执行、结果验证与加密参数设置,强调版本兼容性及保留关键类方法的重要性
    2025-09-09
  • SpringBoot接口国际化异常信息的完整实现方案

    SpringBoot接口国际化异常信息的完整实现方案

    要实现Java后端接口根据请求头的语言字段返回对应语言的异常信息,核心思路是国际化配置 + 全局异常处理 + 请求头语言解析,以下是基于Spring Boot的完整实现方案,需要的朋友可以参考下
    2025-12-12
  • Java Swing JPasswordField密码框的实现示例

    Java Swing JPasswordField密码框的实现示例

    这篇文章主要介绍了Java Swing JPasswordField密码框的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Java中对null进行强制类型转换的方法

    Java中对null进行强制类型转换的方法

    小编对null进行强转会不会抛错,非常的好奇,下面小编通过实例代码给大家介绍Java中对null进行强制类型转换的方法,感兴趣的朋友参考下吧
    2018-09-09
  • java之Object类用法实例

    java之Object类用法实例

    这篇文章主要介绍了java之Object类用法实例,是Java程序设计中比较重要的概念,以实例的形式对其定义及用法做了较为深入的讲解,需要的朋友可以参考下
    2014-10-10
  • IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架实现

    IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架实现

    本文主要介绍了IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论