rabbitmq 集群搭建

RabbitMQ集群介绍

RabbitMQ集群是一组RabbitMQ节点(broker)的集合,它们一起工作以提供高可用性和可伸缩性服务。 RabbitMQ集群中的节点可以在同一物理服务器或不同的物理服务器上运行。

RabbitMQ集群的工作原理是,每个节点在一个虚拟主机中提供服务,并通过网络进行通信和数据同步。当一个节点在集群中宕机时,其他节点可以接管其未处理的消息和队列,并尝试恢复数据同步,从而确保服务的可用性。

要建立一个RabbitMQ集群,需要遵循以下步骤:

  1. 安装RabbitMQ:在每个节点上安装RabbitMQ。

  2. 配置节点:为每个节点提供唯一的名称和IP地址,并确保它们可以相互访问。

  3. 创建虚拟主机:在每个节点上创建相同的虚拟主机。

  4. 配置集群:配置每个节点以了解其他节点的存在,并让它们加入到集群中。

  5. 测试集群:使用工具或客户端测试集群的可用性和可靠性。

RabbitMQ集群可以显著提高应用程序的可用性和可伸缩性,但也需要注意一些方面,例如,确保网络连接的稳定性,及时修复故障节点等。

1.下载

docker pull rabbitmq:3.7.7-management

2.启动

复制代码
#rabbitmqCluster01 主节点
docker run -d --hostname rabbitmq01 --name rabbitmqCluster01  -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin  rabbitmq:3.7.7-management

#rabbitmqCluster02 从节点
docker run -d --hostname rabbitmq02 --name rabbitmqCluster02  -p 7002:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --link rabbitmqCluster01:rabbitmq01 rabbitmq:3.7.7-management

#rabbitmqCluster03 从节点
docker run -d --hostname rabbitmq03 --name rabbitmqCluster03  -p 8002:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --link rabbitmqCluster01:rabbitmq01 --link rabbitmqCluster02:rabbitmq02  rabbitmq:3.7.7-management

3.配置

复制代码
rabbitmqctl stop_app

rabbitmqctl reset
#rabbitmq01为rabbitmqCluster01容器中的hostname
rabbitmqctl join_cluster --ram rabbit@rabbitmq01

rabbitmqctl start_app

执行结果

复制代码
[root@192-168-3-193 ~]# docker exec -it 0fd63626f0e6bdbe7da774f5e2a95627379976f89fe03380d5fee3ef7d1f742d bash
root@rabbitmq03:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq03 ...
root@rabbitmq03:/# rabbitmqctl reset
Resetting node rabbit@rabbitmq03 ...
root@rabbitmq03:/# rabbitmqctl join_cluster --ram rabbit@rabbitmq01
Clustering node rabbit@rabbitmq03 with rabbit@rabbitmq01
root@rabbitmq03:/# rabbitmqctl start_app
Starting node rabbit@rabbitmq03 ...
 completed with 3 plugins.
root@rabbitmq03:/# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq03 ...
[{nodes,[{disc,[rabbit@rabbitmq01]},
         {ram,[rabbit@rabbitmq03,rabbit@rabbitmq02]}]},
 {running_nodes,[rabbit@rabbitmq02,rabbit@rabbitmq01,rabbit@rabbitmq03]},
 {cluster_name,<<"rabbit@rabbitmq01">>},
 {partitions,[]},
 {alarms,[{rabbit@rabbitmq02,[]},
          {rabbit@rabbitmq01,[]},
          {rabbit@rabbitmq03,[]}]}]
root@rabbitmq03:/#

4.登录

相关推荐
伟大的大威3 小时前
NVIDIA DGX Spark (Blackwell GB10) 双机 196B Step 3.5 Flash 大模型部署完整实录
分布式·spark·nvidia
回家路上绕了弯9 小时前
Claude Code Agent Team 全解析:AI 集群协作,重构代码开发新范式
人工智能·分布式·后端
初次攀爬者10 小时前
Redis与数据库的数据一致性方案解析
数据库·redis·分布式
切糕师学AI11 小时前
Kubernetes Operator 详解
运维·分布式·云原生·容器·kubernetes·自动化·运维自动化
梵得儿SHI11 小时前
Spring Cloud 高并发订单服务实战:从创建流程优化到 Seata 分布式事务落地(附代码 + 架构图)
分布式·spring·spring cloud·高并发·异步削峰·完整解决方案·限流降级
阿坤带你走近大数据14 小时前
大数据处理与分布式存储的各自介绍
分布式·云原生·实时数仓·存储·数据处理·数据湖仓
yatum_201415 小时前
集群节点时钟同步(NTP)配置手册
linux·分布式·hbase
筱顾大牛15 小时前
点评项目---分布式锁
java·redis·分布式·缓存·idea
petrel201515 小时前
【Spark】深度魔改 Spark 源码:打破静态限制,实现真正的运行时动态扩缩容
大数据·分布式·spark
yc_xym16 小时前
Redis经典应用-分布式锁
数据库·redis·分布式