[英]Check if Rabbit MQ is down
我正在編寫一個 C# 控制台應用程序(Windows 計划任務)來監視 Rabbit MQ 的狀態。 因此,如果隊列關閉(服務關閉、連接超時或任何其他原因),它將發送通知郵件。 我使用過 RabbitMQ .Net 客戶端(版本 4.1.1)。 基本上我正在檢查 CreateConnection() 是否成功。
private static void CheckRabbitMQStatus()
{
ConnectionFactory factory = new ConnectionFactory();
factory.Uri = "amqp://guest:guest@testserver:5672/";
IConnection conn = null;
try
{
conn = factory.CreateConnection();
conn.Close();
conn.Dispose();
}
catch (Exception ex)
{
if (ex.Message == "None of the specified endpoints were reachable")
{
//send mail MQ is down
}
}
}
這是實現這一目標的正確方法嗎? Rabbit MQ 有多種工具和插件可用,但我想要一個簡單的 C# 解決方案。
如果您有一個簡單的消息隊列設置(沒有多台機器的集群或聯合),它應該可以工作。
RabbitMQ API 具有活動性檢查,旨在供您使用的監控工具使用。 它實際上發送和接收消息。 這可能是比您更敏感的健康檢查。 請參閱此處的最后一項。
https://www.rabbitmq.com/monitoring.html#health-checks
RabbitMQ 本身是健壯的。 通常它遇到的故障模式是它的主機由於其他原因重新啟動。
注意:Rob Three 在 Windows Marketplace 中有一個很好的DebuggableService模板。 這使得將您的健康檢查作為一項服務而不是作為一項計划任務來操縱變得非常容易。 當我重構我的 MQ 東西以作為服務而不是計划任務運行時,我的生活變得更輕松了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.