欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

关于RabbitMQ集群分区的通知

发布时间:2023/12/3 编程问答 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 关于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" ]; thenecho "RabbitMQ cluster is partitioned"aws cloudwatch put-metric-data --metric-name $METRIC_NAME --namespace $NAMESPACE --value 1 --dimensions Stack=$STACKNAME --region $REGION elseaws 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

总结

以上是生活随笔为你收集整理的关于RabbitMQ集群分区的通知的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。