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