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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




