暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Rabbitmq-网络分区故障处置

原创 郭鸿伟 云和恩墨 2023-02-03
541

Rabbitmq网络分区整体处置脑图


Rabbitmq故障处置

故障现象

1、通过查看集群状态发现partitions出现了非空字段


2、通过查看Rabbitmq日志,对应出现分区报错信息


故障处置

1、当前Rabbitmq集群已经设置了网络分区自动修复策略,具体策略如下:cluster_partition_handling = autoheal

2、但是通过该配置,并未自动选择出优势分区,也未对劣势分区进行重启动作;

3、通过人为判断优势分区为node1和node2,则对node3节点进行重启动作;

4、node3:rabbitmqctl stop_app /start_app

5、通过rabbitmqctl cluster_status查看状态是否恢复;

6、如有对应分区报错,则将优势分区node1和node2节点也分别进行重启;


衍生故障


1、可以清晰的发现当前所有队列的master节点均在node_1上,一旦业务压力过大,将导致node1节点资源紧张,进而影响系统稳定性;

2、出现该问题,是因为设置了镜像队列模式,导致在节点重启过程中,队列 master发生了“漂移”,进而引发队列master向某个节点集中;

处置:

前提:将producer停掉,将queue中的消息由consumer消费掉,然后停止consumer进程

        本质上Rabbitmq没有提供类似于Kafka的分区重分配的机制,将这些集中的队列进行打散,所以几乎无解。

1、在发生网络分区的情况下,建议删除ha的policy,减少队列的漂移;

    rabbitmqctl clear policy [-p vhost] {mirror queue name} 

2、重启节点;
3、重新创建对应的ha policy;
最后修改时间:2023-02-03 15:10:25
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论