4

我需要为我的 Web 应用程序(tomcat 战争)设置一个 keepalive 端点。我的 WAF 会定期对端点进行采样,以确保应用程序健康。

一个健康的应用程序意味着应用程序已启动并且与 RabbitMQ 服务器(版本 3.5.3 /spring-rabbit 1.4.5)的通信已启动且功能正常。

我将向我的 WAF 打开一些 REST API,以验证连接状态。
阅读文档,我对如何在功能上实现这一点非常迷茫
我注意到一些可能有帮助的功能,但我不确定:

  1. 启用自动恢复并使用RecoveryListener并确保上次恢复没有失败。
  2. 配置HeartBeat并找出一种在“连接中断”时收到通知的方法</li>
  3. 创建一些 Heath Queue 并使用像Shovel这样的插件来回显消息,如果我没有得到任何响应,我认为队列已关闭
4

1 回答 1

4

你不需要像铲子这样的特殊东西来实施健康检查。只需创建一个健康队列并向/从它发送/接收。

如果您使用的是 Spring AMQP

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

此外,您可以ConnectionListener向 Spring AMQP 的连接工厂注册一个,并在创建/关闭连接时通知您。

Spring AMQP 从一开始就有连接恢复,所以不使用 rabbitmq 客户端中的(相对较新的)内置自动恢复。

如果您不使用 Spring AMQP,请使用basicPublishbasicGet在通道上向/从健康队列发送/接收。

于 2016-05-15T14:30:24.190 回答