2016-05-15 22 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

是的,这也会起作用,以验证连接是否仍然良好。发送/接收消息会深入一层。 –

相关问题