KCL检查点对应用程序/分片或整个分片是唯一的吗?

时间:2015-03-23 09:21:09

标签: amazon-kinesis

鉴于具有多个分片的单个流,我假设每个应用程序将通过Kinesis客户端库在从此流处理的记录上维护自己的检查点。但是,我发现很难找到阅读AWS上的文档的情况。

我的问题是,如果我使用KCL将两个Kinesis应用程序连接到同一个流,它们是否会为处理过的记录共享相同的检查点?他们可以独立处理记录吗?

1 个答案:

答案 0 :(得分:0)

为了使事件处理可扩展且更简单,最好保留以下内容:

  • 每个工作人员实例正在处理单个分片
  • 每个工作逻辑都在不同的消费者应用程序中实现

如果您保留这些最佳实践,则会使您的事件处理变得更加灵活和可扩展。

如果将工作实例的分片比率保持为1:1,则更容易扩展,因为您只需添加分片(即分割现有分片并将分片容量加倍),并且每个工作器实例仅处理相同的分片事件量(例如,每秒1000个事件)。 KCL将为每个新分片添加一个worker实例。

您也可以自由修改一种类型的逻辑,而无需更改其他逻辑。例如,如果你想重播"具有稍微修改逻辑的事件用于处理,其余逻辑不必重复处理。最简单的逻辑分裂是"慢"处理(例如,将S3和COPY复制到Redshift)和"快速"处理(例如,实时检查事件以更新计数器或识别欺诈以立即阻止)。 KCL将为每种类型的处理添加一个应用程序。

简而言之,KCL将帮助您维护每个应用程序和每个分片的处理(检查点)状态。例如,如果您的流中有3个消费者逻辑和8个分片,则您将拥有3 * 8 = 24个检查点。