鉴于具有多个分片的单个流,我假设每个应用程序将通过Kinesis客户端库在从此流处理的记录上维护自己的检查点。但是,我发现很难找到阅读AWS上的文档的情况。
我的问题是,如果我使用KCL将两个Kinesis应用程序连接到同一个流,它们是否会为处理过的记录共享相同的检查点?他们可以独立处理记录吗?
答案 0 :(得分:0)
为了使事件处理可扩展且更简单,最好保留以下内容:
如果您保留这些最佳实践,则会使您的事件处理变得更加灵活和可扩展。
如果将工作实例的分片比率保持为1:1,则更容易扩展,因为您只需添加分片(即分割现有分片并将分片容量加倍),并且每个工作器实例仅处理相同的分片事件量(例如,每秒1000个事件)。 KCL将为每个新分片添加一个worker实例。
您也可以自由修改一种类型的逻辑,而无需更改其他逻辑。例如,如果你想重播"具有稍微修改逻辑的事件用于处理,其余逻辑不必重复处理。最简单的逻辑分裂是"慢"处理(例如,将S3和COPY复制到Redshift)和"快速"处理(例如,实时检查事件以更新计数器或识别欺诈以立即阻止)。 KCL将为每种类型的处理添加一个应用程序。
简而言之,KCL将帮助您维护每个应用程序和每个分片的处理(检查点)状态。例如,如果您的流中有3个消费者逻辑和8个分片,则您将拥有3 * 8 = 24个检查点。