Kinesis 流挂起消息计数

Kinesis stream pending message count

我正在尝试将 AWS Kinesis 流用于我们的一个数据流。我想出于操作目的监视我的流中的待处理消息(根据积压向下游扩展),但无法在我的流中找到任何提供(大约)待处理消息的 API。

这看起来很奇怪,因为消息会在 7 天后过期,如果生产者和消费者是孤立的并且无法通信,您怎么知道消息会过期。你如何处理这个问题?

谢谢!

Kinesis中没有"pending"消息这样的概念。所有传入的数据都将放在一个分片上。

您的消费者应用程序应始终处于 运行 状态,以跟踪流中的变化。应用程序(在 KCL 的帮助下)将继续在后台轮询 "Shard Iterator",因此当有新数据时您会收到通知。

大致;您可以将 Kinesis 视为一个 FIFO 队列,如果您不弹出消息,消息将在短时间内消失。

如果您的应用程序将在一个小时内处理几条消息,您应该考虑更改架构。 Kinesis 可能不是适合您的工具。