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

0

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

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

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

或者

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

客户想要例子或实践。

profile picture
專家
已提問 5 個月前檢視次數 30 次
1 個回答
0

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

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

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

profile picture
專家
已回答 5 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南