Amazon web services Kinesis流挂起消息计数

Amazon web services Kinesis流挂起消息计数,amazon-web-services,aws-sdk,amazon-kinesis,Amazon Web Services,Aws Sdk,Amazon Kinesis,我正在尝试将AWS Kinesis stream用于我们的一个数据流。我想监控流中的挂起消息以用于ops目的(根据积压工作向下扩展),但找不到在流中提供(大约)挂起消息的任何API 这看起来很奇怪,因为消息在7天后过期,如果生产者和消费者被隔离,无法通信,您如何知道消息即将过期。你如何处理这个问题 谢谢 在动觉学中没有“待定”信息的概念。所有传入的数据都将放在一个碎片上 您的使用者应用程序应始终处于运行状态,以跟踪流中的更改。应用程序(在KCL的帮助下)将继续在后台轮询“Shard Iterat

我正在尝试将AWS Kinesis stream用于我们的一个数据流。我想监控流中的挂起消息以用于ops目的(根据积压工作向下扩展),但找不到在流中提供(大约)挂起消息的任何API

这看起来很奇怪,因为消息在7天后过期,如果生产者和消费者被隔离,无法通信,您如何知道消息即将过期。你如何处理这个问题


谢谢

在动觉学中没有“待定”信息的概念。所有传入的数据都将放在一个碎片上

您的使用者应用程序应始终处于运行状态,以跟踪流中的更改。应用程序(在KCL的帮助下)将继续在后台轮询“Shard Iterator”,因此当新数据出现时,您将收到通知

粗略地;您可以将动画视为FIFO队列,如果不弹出消息,消息将在短时间内消失


如果您的应用程序将在一小时内处理几条消息,那么您应该考虑更改您的体系结构。动觉可能不适合您。

感谢您的详细解释。这是有道理的。在我的用例中,我在kinesis流上获得了一个密钥流(几个k-TPS),我希望应用一些转换并将其交付给另一个服务。我主要担心在某些情况下“悄悄丢失消息”,比如增加目标服务延迟或上游峰值造成积压。可能我应该设置为每个碎片的最大容量。在worker.java中,它调用runProcessLoop,并在其中调用shardConsumer.consumeShard(),在那里它调用CheckAndSubmitTextTask(),因为它检查ReadyForTextTask与否。如果未准备好,则不会使用新记录。那个么,在recordprocessor不处理以前的记录的情况下,worker如何检索新记录呢。