0

我有以下用例

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

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

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

4

1 回答 1

0

KCL 会为您执行此操作 - 只要 KCL 应用程序正在运行,它就会不断地从流中读取。如果大多数时候您的流不返回数据也没关系 - 它只会继续运行并且什么都不做,直到有数据,此时您的处理代码会启动。

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

现在,如果您的流很多时候都是空的,使用 AWS Lambda 处理您的流可能更具成本效益,这将按需处理您的记录,而无需运行(和支付)硬件来持续执行从流中读取操作。

于 2019-02-14T01:55:17.240 回答