是否可以按需阅读Kinesis流而没有延迟

问题描述 投票:0回答:1

我有以下用例

  • 我有kinesis流有用户数据。
  • 我想根据用户操作阅读kinesis流。
  • 根据用户输入过滤记录,保持过滤一段时间,比方说5分钟。
  • 继续将这些过滤后的批次返回给用户5分钟。
  • 超时后停止阅读kinesis

问题:是否有一种按需阅读动作的方法,使用KCL或任何其他库没有任何延迟。 Ley说我可以让KCL jvm应用程序设置当前没有读取,只要它获得用户操作,就开始阅读。同样在一些超时或进一步的用户操作后停止读取。

我可以编写一个可以做到这一点的逻辑,但想知道KCL中是否有任何内置。

java amazon-web-services amazon-kinesis amazon-kcl
1个回答
0
投票

KCL为您完成此任务 - 只要KCL应用程序正在运行,它将不断从流中读取。无论大多数情况下你的流没有返回任何数据都没关系 - 它只会继续运行并且什么都不做,直到有数据,此时你的处理代码就会启动。

您可以配置没有KinesisClientLibConfiguration.idleTimeBetweenReadsInMillis记录时所需的超时 - 默认值为1秒。这里有很多配置选项可以根据需要微调行为。

现在,如果您的流在很多时候都是空的,那么use AWS Lambda to process your streams可能会更具成本效益,qazxswpoi将按需处理您的记录,而无需运行(并支付)硬件来继续从流中执行读取操作。

© www.soinside.com 2019 - 2024. All rights reserved.