关于RabbitMQ集群分区的通知
如果您在集群中運行RabbitMQ,則集群不太可能會被分區(qū) (集群的一部分失去與其余部分的連接)。 上面的鏈接頁面介紹了顯示狀態(tài)和配置行為的基本命令。 當發(fā)生分區(qū)時,您首先希望得到通知,然后再解決它。
RabbitMQ實際上使用cluster_partition_handling配置自動處理第二個。 它具有三個值:ignore,pause_minority和autoheal。 上面鏈接的分區(qū)指南也對此進行了說明(“我應該選擇哪種模式?”)。 請注意,無論您選擇什么,都遇到問題,必須恢復連接。 例如,在前一講的多可用區(qū)設置中,最好使用pause_minority然后手動重新連接。
幸運的是,檢測分區(qū)非常簡單。 如果沒有分區(qū),那么status命令將有一個空的“ partitions”元素,并且有一個非空的partitions元素,或者如果有分區(qū),則根本沒有這樣的元素。 因此,此行進行檢測:
clusterOK=$(sudo rabbitmqctl cluster_status | grep "{partitions,\[\]}" | wc -l)例如,您可能希望將該腳本安排為每分鐘運行一次。 處理結果取決于您使用的工具(Nagios,CloudWatch等)。 對于Nagios ,實際上有一個現(xiàn)成的插件 。 如果是AWS CloudWatch,則可以執(zhí)行以下操作:
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發(fā)生分區(qū)時,重要的事情會得到通知。 此后,它取決于特定的應用程序,問題,隊列的配置(耐用,鏡像等)。
翻譯自: https://www.javacodegeeks.com/2015/04/getting-notified-about-rabbitmq-cluster-partitioning.html
總結
以上是生活随笔為你收集整理的关于RabbitMQ集群分区的通知的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 库区备案法人拍照(库区备案)
- 下一篇: bean创建异常_快速提示:消息驱动Be