1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 您可以将KCL视为一个微批处理系统。KCL的一个实例会从一个Kinesis Stream中的单个shard获取一批记录,然后会发生以下两种情况之一:要么成功处理了这批记录,要么没有处理成功。如果成功处理了,它将继续从流中获取下一批记录。如果处理失败,系统将尝试重新处理同一批记录。
如果由于某些原因(例如EC2缩放事件、EC2故障等),KCL中断,则它将无法成功处理当前的微批处理。因此,正在运行KCL的另一个EC2实例将重新处理该微批处理。
当您启动KCL时,它会在DynamoDB中创建一个表,以跟踪对Kinesis Stream中每个shard的处理状态。因此整个系统可以知道处理记录的代理是否已停止响应,该批次是否需要重新分配给另一个代理去处理。
相关内容
- AWS 官方已更新 9 个月前
- AWS 官方已更新 10 个月前
- AWS 官方已更新 1 年前