• 13.rabbitmq集群搭建


    rabbitmq集群搭建和镜像队列

    集群搭建

    准备三台服务器

    • 172.16.140.133 Jan
    • 172.16.140.132 Feb
    • 172.16.140.133 Mar

    修改3台机器的hosts文件

    vim /etc/hosts
    
    • 1

    添加以下内容

    172.16.140.130 Jan
    172.16.140.131 Feb
    172.16.140.132 Mar
    
    • 1
    • 2
    • 3

    确保各个节点的cookie文件使用的是同一个值

    scp /root/.erlang.cookie root@Feb:/root/.erlang.cookie 
    
    • 1

    在这里插入图片描述

    • .erlang.cookie的位置,如果是二进制安装的话是在$HOME下,可以用ll -a去查看
    • 如果是rpm安装的话,在/var/lib/rabbitmq/.erlang.cookie
    scp /root/.erlang.cookie root@Mar:/root/.erlang.cookie
    
    • 1

    在这里插入图片描述

    查看各个节点的文件内容是否一致

    在这里插入图片描述

    在三台服务器上都启动rabbitmq服务

    rabbitmq-server -detached
    
    • 1

    Feb上执行

    • 关闭rabbitmq服务

      • rabbitmqctl stop会将erlang虚拟机关闭,rabbitmqctl stop_app只关闭rabbitmq服务
      rabbitmqctl stop_app
      
      • 1
    • 重置服务

      rabbitmqctl reset
      
      • 1
    • 加入节点Jan

      rabbitmqctl join_cluster rabbit@Jan
      
      • 1
      • Jan要开启25672和4369端口

        firewall-cmd --add-port=25672/tcp --permanent
        firewall-cmd --add-port=4369/tcp --permanent
        
        • 1
        • 2
    • 重新启动应用服务

      rabbitmqctl start_app
      
      • 1

    Mar上执行

    • 关闭rabbitmq服务

      • rabbitmqctl stop会将erlang虚拟机关闭,rabbitmqctl stop_app只关闭rabbitmq服务
      rabbitmqctl stop_app
      
      • 1
    • 重置服务

      rabbitmqctl reset
      
      • 1
    • 加入节点Feb

      rabbitmqctl join_cluster rabbit@Feb
      
      • 1
    • 重新启动应用服务

      rabbitmqctl start_app
      
      • 1

    查看集群状态

    rabbitmqctl cluster_status
    
    • 1

    在这里插入图片描述

    解除集群状态(需要解除的机器上)

    rabbitmqctl stop_app 
    rabbitmqctl reset 
    rabbitmqctl start_app 
    rabbitmqctl cluster_status
    
    • 1
    • 2
    • 3
    • 4

    或者

    • 在需要解除的机器上

      rabbitmqctl stop_app
      
      • 1
    • 在主节点上

      rabbitmqctl forget_cluster_node rabbit@Feb
      
      • 1

    镜像队列

    镜像队列的机制,可以将队列镜像到底集群中的其他Broker节点之上,如果集群中的一个节点失效了,队列能自动的切换到镜像中的另一个节点上以保证服务的可用性

    • 启动三台集群节点

    • 随便找一个节点添加policy

    在这里插入图片描述

    • 新建一个队列,队列的名称应当符合定义的policy的pattern

    • 新建一个队列

    在这里插入图片描述

    • 关闭rabbit@Jan之后,发现node变成了rabbit@Mar,Mirrors 变成了rabbit@Feb

    • 就算整个集群只剩下一台机器了,依然能消费队列里面的消息

  • 相关阅读:
    [附源码]Python计算机毕业设计SSM客户信息管理(程序+LW)
    使用 StarCoder 创建一个编程助手
    pip安装或更新
    超大规模云数据中心对存储的诉求有哪些?
    Flink学习21:数据输出sink
    Hadoop(HDFS)
    梳理 Pytorch 19个方面,70个核心操作全总结!
    网络基础(一)
    软件测试开发和软件测试有什么区别?
    QT集成MQTT教程
  • 原文地址:https://blog.csdn.net/qq_34932086/article/details/125995055