当前位置: 首页 > 知识库问答 >
问题:

在KCL的Kinesis中,stream的最新位置是如何工作的?

凌钊
2023-03-14

我们正在构建基于Kinesis/DynamoDB流的服务,我们对检查点的行为有以下问题。

我们有一个worker,它以以下配置开始,即InitialPositionInStream(InitialPositionInStream.LATEST),并且KCL应用程序的名称始终相同。

通过关闭和再次打开工作线程,我们观察到,它不会从流的末尾开始消耗,因为我们有一个滞后指标,我们看到,当工作线程打开时,消耗滞后是小时,我们预计它会少于1秒,因为它们是我们此时生成的消息

  • 这是预期的行为吗

非常感谢你。

共有1个答案

宁侯林
2023-03-14

正如流中初始位置的文档所述,

用于指定流中新应用程序的起始位置。这在初始应用程序引导期间使用(当碎片或其父级不存在检查点时)。

因此,它仅在初始新应用程序引导期间使用,并且在LATEST的情况下,它在最近的数据记录之后开始。但仅当分片或其父级不存在检查点时。

因此,如果您关闭worker,然后再次打开它,它将不再从最新开始,而是从碎片的最后一个检查点序列号开始。

KCL不会自动检查点,因此,如果您的员工开始时出现小时延迟,则可能意味着您的检查点太少。

 类似资料:
  • 除了切换到使用阻塞同步Kinesis客户端之外,还有其他解决方案可以有效地对流事件进行排序吗?

  • 请帮忙。我在为中的Kinesis数据流设置消费者时遇到问题。NET控制台应用程序。 我已经按照留档做了所有的事情,但是每当我运行消费者时,我仍然会得到一个空白的控制台屏幕。到目前为止,生产者工作正常,AWS凭据也在工作。 我的系统上的JDK配置良好(对Java开发来说并不新鲜) 我有所有必要的政策附加到我的IAM用户 我可以看到生产者可以使用相同的AWS凭据以编程方式创建流、desc流等 我可以在

  • 所有变量名都来自QuickSort的维基百科页面的Lomuto和Hoare的QuickSorts伪代码。 如果是函数返回的内容,则Hoare将他的数组从划分为并从划分为;而Lomuto将他的数组从划分为并从划分为。 我可能错了,但QuickSort的理念是... 在子数组(透视)中取一个元素。 重新排列子数组,使枢轴左侧的所有元素小于枢轴,而枢轴右侧的所有元素大于枢轴。 围绕枢轴划分数组。对两个较

  • 我遇到了Java8中引入的arrays.ParallelPrefix。 这个重载的方法以累加的方式对输入数组的每个元素执行操作。对于例如来自文档: 使用提供的函数,并行地将给定数组的每个元素累积到位。例如,如果数组最初保持[2,1,0,3]并且操作执行加法,则返回数组时保持[2,3,3,6]。对于大型数组,并行前缀计算通常比顺序循环更有效。 那么,当对一个术语的操作依赖于对前一个术语的操作结果时,

  • 在Spark中是如何工作的? 如果我们注册一个对象作为一个表,会将所有数据保存在内存中吗?

  • 我从网上和论坛上看到了关于BatchSize的相关主题,但我仍然不明白一些部分。所以让我们描述一下我理解的和不理解的。 批量取数:选择取数的优化策略。Hibernate通过指定主键或外键列表,在一次选择中检索一批实体实例或集合。 让我们有JPA 2.0,带有Hibernate实现。这些实体: } 因此,我懒得去了解产品中的制造商。因此,当我执行select fetching时,就完成了。所以我有很