• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.配置

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

    执行结果

    [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:/#
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    4.登录

    在这里插入图片描述

  • 相关阅读:
    【SpringMVC】重定向和转向详解
    leetcode:860.柠檬水找零
    Vue3.0跨端Web SDK访问微信小程序云储存,文件上传路径不存在/文件受损无法显示问题(已解决)
    PyG搭建GCN实现链接预测
    [附源码]java毕业设计法律咨询信息管理系统
    【魔方代码】1200行C语言代码实现“魔方”程序,学会它买魔方的钱都省了,拿走不谢~
    【数据库】Sql Server 2022通过临时表和游标遍历方式逻辑处理获取目标数据
    FFMpeg AVBufferPool 的理解与掌握
    数学建模-大模型的对比
    【编程题】【Scratch三级】2022.06 古堡历险记
  • 原文地址:https://blog.csdn.net/liuyunshengsir/article/details/134421599