zoukankan      html  css  js  c++  java
  • RabbitMQ镜像模式双节点部署时故障转移过程中队列中消息的状态

    场景

    现有节点Node1和Node2,建立Exchange:yu.exchange,创建队列yu1.queue镜像队列master位于Node1,yu2.queue镜像队列位于Node2,使用topic模式绑定到Exchange;

    当队列发送时设置DeliveryMode=1 No-Persistent 不进行度列持久化时

    过程:

    1.客户端向Exchange发送消息10条,停掉Node1上的RabbitMQ实例,队列yu1.queue将master切换到Node2,队列正常继续接受,不影响后续的消息接收。(当前消息条数10)

    2.客户端继续发送消息5条,然后启动Node1实例,Node1会以从节点的身份恢复到集群中(当前消息条数15条),Node1会以从节点的身份恢复到集群中,此时队列上显示消息不一致“+0+1”的警告,即发生主从消息不一致

    3.客户端继续发送消息5条(此时队列内消息为20条),此时队列上依然显示消息不一致“+0+1”的警告

    4.暂停Node2实例,此时队列会全部切换master到Node2,队列正常运行,但此刻队列消息条数为5,由于只剩一个节点,所以不再存在消息不一致的“+0+1”警告

    5.客户端继续发送5条,启动Node1实例,队列内消息为10条,继续队列上显示消息不一致“+0+1”的警告,即发生主从消息不一致(队列条数10)

    小结:对于未设置持久化的消息队列,如果无订阅客户端进行消息消费的话,当发生主从切换时,master实例在关闭到重启为slaver的过程中,如果队列持续接收消息会发生不一致的警告。同时如果该场景重复发生,如果不设置参数“ha-sync-mode: automatic”的话(默认为ha-sync-mode: manual),队列内消息不会进行同步,消息内容以最近master实例内的消息为主。(https://www.rabbitmq.com/admin-guide.html

    当队列发送时设置DeliveryMode=2 Persistent 进行度列持久化时

    1.客户端向Exchange发送消息10条,停掉Node1上的RabbitMQ实例,队列yu1.queue将master切换到Node2,队列正常继续接受,不影响后续的消息接收。(当前消息条数10)

    2.客户端继续发送消息5条,然后启动Node1实例,Node1会以从节点的身份恢复到集群中(当前消息条数15条),Node1会以从节点的身份恢复到集群中,此时队列上显示消息不一致“+0+1”的警告,即发生主从消息不一致

    3.客户端继续发送消息5条(此时队列内消息为20条),此时队列上依然显示消息不一致“+0+1”的警告

    4.暂停Node2实例,此时队列会全部切换master到Node2,队列正常运行,但此刻队列消息条数为0!!!!,由于只剩一个节点,所以不再存在消息不一致的“+0+1”警告

    5.客户端继续发送5条,启动Node1实例,队列内消息为5条,继续队列上显示消息不一致“+0+1”的警告,即发生主从消息不一致(队列条数5)

    6.再次关闭Node2实例,master又会切回到Node1,但此处队列内消息再次归0!!!!

    当镜像队列部署到多于两个节点时需要注意ha-mode的参数设置 镜像队列数量越少处理速度越快,多一些当然数据的一致性会更高,但吞吐量会下降

  • 相关阅读:
    Codeforces Round #401 (Div. 2)解题报告
    ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) 解题报告
    (线段树)hdoj 3308-LCIS
    Codeforces Round #399 (Div. 1 + Div. 2, combined) D题Jon and Orbs(dp)解题报告
    2019 Multi-University Training Contest 1
    2019 Multi-University Training Contest 6
    2019牛客暑期多校训练营(第八场)
    模板
    2019 Multi-University Training Contest 8
    2019 Multi-University Training Contest 9
  • 原文地址:https://www.cnblogs.com/ylsforever/p/7691294.html
Copyright © 2011-2022 走看看