AWS KCL 库中的检查点和修整如何相关?
文档页面处理启动、关闭和节流说:
默认情况下,KCL 从流的尖端开始读取记录;这是最近添加的记录。在此配置中,如果数据生成应用程序在任何接收记录处理器运行之前将记录添加到流中,则记录处理器在启动后不会读取记录。
要更改记录处理器的行为以使其始终从流的开头读取数据,请在您的 Amazon Kinesis Streams 应用程序的属性文件中设置以下值:
initialPositionInStream = TRIM_HORIZON
使用Java 开发 Amazon Kinesis 客户端库使用者的文档页面说:
Streams 要求记录处理器跟踪已在分片中处理的记录。KCL 通过将检查指针 (IRecordProcessorCheckpointer) 传递给 processRecords 来为您处理此跟踪。记录处理器在此接口上调用检查点方法,以通知 KCL 它在处理分片中的记录方面的进展情况。如果工作程序失败,KCL 会使用此信息在最后一个已知的已处理记录处重新开始处理分片。
第一页似乎说 KCL 在流的顶端恢复,第二页在最后一个已知的已处理记录(使用 标记为已处理RecordProcessor
)checkpointer
。就我而言,我肯定需要在最后一个已知的已处理记录处重新启动。我需要将 initialPositionInStream 设置为 TRIM_HORIZON 吗?