我对KCL(Kinesis Customer Library)有疑问。

0

【以下的问题经过翻译处理】 客户目前在自己的物联网服务中使用Kinesis(我猜是data stream)。

客户确信KCL记录了EC2在缩放或终止时如何处理数据。(当数据被处理时可能会终止EC2)

Q1) 他们想知道这个记录是如何处理的?

或者

Q2) 他们必须在EC2被缩放时设置生命周期钩子,或者KCL能自己管理这个记录?

客户想要例子或实践。

profile picture
专家
已提问 3 个月前10 查看次数
1 回答
0

【以下的回答经过翻译处理】 您可以将KCL视为一个微批处理系统。KCL的一个实例会从一个Kinesis Stream中的单个shard获取一批记录,然后会发生以下两种情况之一:要么成功处理了这批记录,要么没有处理成功。如果成功处理了,它将继续从流中获取下一批记录。如果处理失败,系统将尝试重新处理同一批记录。

如果由于某些原因(例如EC2缩放事件、EC2故障等),KCL中断,则它将无法成功处理当前的微批处理。因此,正在运行KCL的另一个EC2实例将重新处理该微批处理。

当您启动KCL时,它会在DynamoDB中创建一个表,以跟踪对Kinesis Stream中每个shard的处理状态。因此整个系统可以知道处理记录的代理是否已停止响应,该批次是否需要重新分配给另一个代理去处理。

profile picture
专家
已回答 3 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则