2016-05-15 23 views
1

我需要設置keepalive端點以便可以web應用程序(tomcat war)。 我的WAF會定期採樣終點,以確保應用程序健康。如何確保我的應用程序連接到RabbitMQ是健康的

健康應用程序意味着應用程序已啓動,並且與RabbitMQ服務器(版本3.5.3/spring-rabbit 1.4.5)的通信已啓動並且功能正常。

我會打開一些REST API到我的WAF來驗證連接狀態。
閱讀文檔我很遺憾如何實現這個功能
我注意到一些功能,可以幫助,但我不知道:

  1. 啓用自動恢復,並使用RecoveryListener並確保最後恢復沒有失敗。
  2. 配置HeartBeat並想出一個辦法要在「破壞連接」
  3. 通知創建一些希思隊列和使用插件像Shovel回顯信息,如果我沒有得到我承擔任何響應隊列下降

回答

2

你不需要任何特殊的鏟子來執行健康檢查。只需創建一個健康隊列併發送/接收它。

如果您在使用Spring AMQP

rabbitTemplate.send("", "healthQueue", "foo"); 
String foo = rabbitTemplate.receive("healthQueue"); 

此外,你可以註冊使用Spring AMQP的連接工廠ConnectionListener,並在創建連接時將通知您/關閉。

Spring AMQP從一開始就有了連接恢復功能,因此不會使用rabbitmq客戶端的(相對較新的)內置自動恢復功能。

如果您未使用彈簧AMQP,請在通道上使用basicPublishbasicGet從健康隊列發送/接收數據。

+0

僅僅使用Spring Boot中的org.springframework.boot.actuate.health.RabbitHealthIndicator還不夠,或者至少在非引導項目中使用相同的方法? –

+0

是的,這也會起作用,以驗證連接是否仍然良好。發送/接收消息會深入一層。 –

相關問題