【发布时间】:2016-11-27 09:43:48
【问题描述】:
AWS KCL 库中的检查点和修整如何相关?
文档页面处理启动、关闭和节流说:
默认情况下,KCL 从前端开始读取记录 stream;,这是最近添加的记录。在这个 配置,如果数据生成应用程序将记录添加到 在任何接收记录处理器运行之前流,记录 记录处理器启动后不会读取它们。
更改记录处理器的行为,使其始终 从流的开头读取数据,设置以下值 在您的 Amazon Kinesis Streams 应用程序的属性文件中:
initialPositionInStream = TRIM_HORIZON
文档页面Developing an Amazon Kinesis Client Library Consumer in Java 说:
Streams 要求记录处理器跟踪记录 已经在分片中处理的。 KCL 负责 通过检查点为您进行跟踪 (IRecordProcessorCheckpointer) 来处理记录。唱片处理器 调用此接口上的检查点方法以通知 KCL 如何 到目前为止,它在处理分片中的记录方面取得了进展。在里面 如果 worker 失败,KCL 会使用此信息重新启动 在最后一个已知的已处理记录处处理分片。
第一页似乎说 KCL 在流的顶端恢复,第二页在最后一个已知的已处理记录(由 RecordProcessor 使用 checkpointer 标记为已处理)。就我而言,我肯定需要在最后一个已知的已处理记录处重新启动。是否需要将 initialPositionInStream 设置为 TRIM_HORIZON?
【问题讨论】:
标签: amazon-web-services amazon-kinesis amazon-kcl