rabbitmq 集群搭建

我会带着你远行 2024-02-18 11:02 146阅读 0赞

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.启动

  1. #rabbitmqCluster01 主节点
  2. 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
  3. #rabbitmqCluster02 从节点
  4. 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
  5. #rabbitmqCluster03 从节点
  6. 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.配置

  1. rabbitmqctl stop_app
  2. rabbitmqctl reset
  3. #rabbitmq01为rabbitmqCluster01容器中的hostname
  4. rabbitmqctl join_cluster --ram rabbit@rabbitmq01
  5. rabbitmqctl start_app

执行结果

  1. [root@192-168-3-193 ~]# docker exec -it 0fd63626f0e6bdbe7da774f5e2a95627379976f89fe03380d5fee3ef7d1f742d bash
  2. root@rabbitmq03:/# rabbitmqctl stop_app
  3. Stopping rabbit application on node rabbit@rabbitmq03 ...
  4. root@rabbitmq03:/# rabbitmqctl reset
  5. Resetting node rabbit@rabbitmq03 ...
  6. root@rabbitmq03:/# rabbitmqctl join_cluster --ram rabbit@rabbitmq01
  7. Clustering node rabbit@rabbitmq03 with rabbit@rabbitmq01
  8. root@rabbitmq03:/# rabbitmqctl start_app
  9. Starting node rabbit@rabbitmq03 ...
  10. completed with 3 plugins.
  11. root@rabbitmq03:/# rabbitmqctl cluster_status
  12. Cluster status of node rabbit@rabbitmq03 ...
  13. [{nodes,[{disc,[rabbit@rabbitmq01]},
  14. {ram,[rabbit@rabbitmq03,rabbit@rabbitmq02]}]},
  15. {running_nodes,[rabbit@rabbitmq02,rabbit@rabbitmq01,rabbit@rabbitmq03]},
  16. {cluster_name,<<"rabbit@rabbitmq01">>},
  17. {partitions,[]},
  18. {alarms,[{rabbit@rabbitmq02,[]},
  19. {rabbit@rabbitmq01,[]},
  20. {rabbit@rabbitmq03,[]}]}]
  21. root@rabbitmq03:/#

4.登录

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,146人围观)

还没有评论,来说两句吧...

相关阅读

    相关 rabbitmq

    集群概述   通过 Erlang 的分布式特性(magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服

    相关 rabbitmq

    rabbitmq集群 集群优点: 1. 避免单节点故障, 提高服务可用性 2. 提高服务性能,单机吞吐量有限,集群可以扩展节点,将流量分摊到集群中各个节点,提升rabb