如何检查Kinesis客户端的连接状态?

时间:2016-09-21 16:30:09

标签: amazon-kinesis

我在负载均衡器后面运行一系列Web服务。 lb周期性地请求状态端点以验证特定服务器是否可操作。此服务端点检查与所有外部服务(sql,redis,kinesis等)的连接性

要检查我最初使用的kinesis连接kinesis.listStreams(),但我们正在将运行的服务器数量增加到listStreams命令的5 req / sec limit

验证运动可用的最佳/最便宜的方法是什么?

我们正在使用Java客户端,但我想它对所有客户端都是一样的。

1 个答案:

答案 0 :(得分:1)

AWS支持在此帖子https://forums.aws.amazon.com/thread.jspa?messageID=743149&#743149

中得到了解答

Kinesis并不直接支持这一点。

有两种选择:

1)执行速率限制请求并将速率限制异常视为成功,因为服务器返回指示连接正在运行。

  

这种情况下的速率限制实际上是在服务器端完成的。所以   您将获得有效的ListStreams响应(HTTP代码200),或   您将获得LimitExceededException(HTTP代码400)。两个回应   意味着您已连接到Kinesis端点,因为   响应来自该服务。如果连接断开,你   会看到响应代码5xx的超时或其他错误(如   的ServiceUnavailableException)。

2)不要使用kinesis库,但使用常规网络技术来测试与kinesis rest端点的连接

  

不幸的是(并且由于显而易见的原因),我们所有的API都是速率限制的   并且我们不会公开任何适合此使用模式的API。然而,   看起来你只想验证你的连接   服务和Kinesis端点。您并不需要使用AWS   SDK为此,您可以使用标准Java库来执行   类似于" ping"到我们的终点。   Preferred Java way to ping an HTTP URL for availability   有一些选择