第十四章 高级特性-Rabbitmq高可用集群实战讲解(3)

第5集 综合实战-RabbitMQ高可用mirror镜像集群策略配置

简介:讲解RabbitMQ高可用mirror镜像集群配置策略配置

  • 背景

    • 前面搭建了普通集群,如果磁盘节点挂掉后,如果没开启持久化数据就丢失了,其他节点也无法获取消息,所以我们这个集群方案需要进一步改造为镜像模式集群
  • 策略policy介绍

 
 
 
 
 
 
rabbitmq的策略policy是用来控制和修改集群的vhost队列和Exchange复制行为
就是要设置哪些Exchange或者queue的数据需要复制、同步,以及如何复制同步
 
  • 创建一个策略来匹配队列

    • 路径:rabbitmq管理页面 —> Admin —> Policies —> Add / update a policy

    • 参数: 策略会同步同一个VirtualHost中的交换器和队列数据

      • name:自定义策略名称
      • Pattern:^ 匹配符,代表匹配所有
      • Definition:ha-mode=all 为匹配类型,分为3种模式:all(表示所有的queue)
       
       
       
       
       
       
      ha-mode: 指明镜像队列的模式,可选下面的其中一个
        all:表示在集群中所有的节点上进行镜像同步(一般都用这个参数)
        exactly:表示在指定个数的节点上进行镜像同步,节点的个数由ha-params指定
        nodes:表示在指定的节点上进行镜像同步,节点名称通过ha-params指定
        
      ha-sync-mode:镜像消息同步方式 automatic(自动),manually(手动)
       

       

image-20210215172043309

  • 配置好后,+2的意思是有三个节点,一个节点本身和两个镜像节点, 且可以看到策略名称 xdclass_mirror

image-20210117231535210

  • 集群重启顺序

    • 集群重启的顺序是固定的,并且是相反的
    • 启动顺序:磁盘节点 => 内存节点
    • 关闭顺序:内存节点 => 磁盘节点
    • 最后关闭必须是磁盘节点,否则容易造成集群启动失败、数据丢失等异常情况

 

 

 

 

 

 

 

 

 

 

 

第6集 SpringBoot2.x项目整合RabbitMQ高可用mirror镜像集群

简介:使用SpringBoot项目整合RabbitMQ高可用集群

  • SpringBoot AMQP单机配置
 
 
 
 
 
 
spring:
  rabbitmq:
    host: 10.211.55.13
    port: 5672
    virtual-host: /
    password: guest
    username: guest
    # 投递到交换机
    publisher-confirm-type: correlated
    # 交换机到队列
    publisher-returns: true
    ##指定消息在没有被队列接收时是否强行退回还是直接丢弃,true是退回
    template:
      mandatory: true
    #开启手动确认消息,如果消息重新入对则会一直重试,可以配置重试次数
    listener:
      simple:
        acknowledge-mode: manual
 
  • 高可用镜像集群配置
 
 
 
 
 
 
#消息队列
spring:
  rabbitmq:
    addresses: 10.211.55.13:5672,10.211.55.13:5673,10.211.55.13:5674
    virtual-host: /dev
    password: xdclass.net168
    username: admin
    #开启消息二次确认,生产者到broker的交换机
    publisher-confirm-type: correlated
    #开启消息二次确认,交换机到队列的可靠性投递
    publisher-returns: true
    #为true,则交换机处理消息到路由失败,则会返回给生产者
    template:
      mandatory: true
    #消息手工确认ACK
    listener:
      simple:
        acknowledge-mode: manual
 
  • 高可用集群测试

    • 关闭消费者监听
    • 生产者发送一个消息
    • 停止节点一和节点二,web管控台访问不了
    • 启动消费者监听,可以消费到消息

 

posted @ 2021-12-08 18:15  老吴IT代码笔记*  阅读(48)  评论(0)    收藏  举报