收到有关RabbitMQ集群分区的通知

如果您在集群中运行RabbitMQ,则集群不太可能会被分区 (集群的一部分失去与其余部分的连接)。 上面的链接页面介绍了显示状态和配置行为的基本命令。 当发生分区时,您首先希望得到通知,然后进行解决。

RabbitMQ实际上使用cluster_partition_handling配置自动处理第二个。 它具有三个值:ignore,pause_minority和autoheal。 上面链接的分区指南也对此进行了说明(“我应该选择哪种模式?”)。 请注意,无论您选择什么,都遇到问题,必须恢复连接。 例如,在前一小节中我解释了在多可用区设置中,最好使用pause_minority然后手动重新连接。

幸运的是,检测分区非常简单。 如果没有分区,那么status命令的“ partitions”元素为空,如果有分区,则为非空的partitions元素,或者根本没有这样的元素。 因此,此行进行检测:

clusterOK=$(sudo rabbitmqctl cluster_status | grep "{partitions,\[\]}" | wc -l)

例如,您可能希望将该脚本安排为每分钟运行一次。 处理结果取决于您使用的工具(Nagios,CloudWatch等)。 对于Nagios ,实际上有一个现成的插件 。 如果是AWS CloudWatch,则可以执行以下操作:

if [ "$clusterOK" -eq "0" ]; then
	echo "RabbitMQ cluster is partitioned"
	aws cloudwatch put-metric-data --metric-name $METRIC_NAME --namespace $NAMESPACE --value 1 --dimensions Stack=$STACKNAME --region $REGION
else
	aws cloudwatch put-metric-data --metric-name $METRIC_NAME --namespace $NAMESPACE --value 0 --dimensions Stack=$STACKNAME --region $REGION
fi

发生分区时,重要的事情将得到通知。 此后,它取决于特定的应用程序,问题,队列的配置(耐用,镜像等)。

翻译自: https://www.javacodegeeks.com/2015/04/getting-notified-about-rabbitmq-cluster-partitioning.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值