KCL for AWS kinesis处理线程是否安全?

时间:2015-10-21 06:33:56

标签: amazon-web-services amazon-kinesis

我们有一个应用程序处理来自kinesis的数据并维持一些状态几秒钟。我们担心维持状态是否会受到KCL多线程特性的影响。

有人能告诉我们KCL的RecordProcessor是否是线程安全的?。

1 个答案:

答案 0 :(得分:3)

KCL是一个围绕您的自定义逻辑的包装程序库,用于处理您的记录。 该库的目的是在您专注于记录处理逻辑的同时管理Kinesis方面。 KCL会将EC2工作者与某个碎片或碎片(通常是1个EC2工作者到1个碎片)对齐,并维护一个存储序列密钥的DynamoDB表。

您的自定义应用程序逻辑负责维护状态和线程安全。

默认情况下,您从分片中获取的Kinesis记录列表(目标大小由您定义)将传递给您要处理的代码。您可以按顺序执行此操作,或者根据需要将它们分叉到线程。直到您从此处理方法返回后,KCL才会从分片中请求更多记录。