【发布时间】:2015-10-24 06:32:48
【问题描述】:
我们有一个应用程序,它处理来自 kinesis 的数据并保持一些状态几秒钟。我们担心保持的状态是否会受到 KCL 的多线程特性的影响。
谁能告诉我们来自 KCL 的 RecordProcessor 是否是线程安全的?
【问题讨论】:
标签: amazon-web-services amazon-kinesis
我们有一个应用程序,它处理来自 kinesis 的数据并保持一些状态几秒钟。我们担心保持的状态是否会受到 KCL 的多线程特性的影响。
谁能告诉我们来自 KCL 的 RecordProcessor 是否是线程安全的?
【问题讨论】:
标签: amazon-web-services amazon-kinesis
KCL 是一个围绕您处理记录的自定义逻辑的包装库。 该库的目的是在您专注于记录处理逻辑的同时管理 Kinesis 方面。 KCL 会将您的 EC2 工作器与某个或多个分片(通常是 1 个 EC2 工作器与 1 个分片)对齐,并维护一个存储排序键的 DynamoDB 表。
您的自定义应用程序逻辑负责维护状态和线程安全。
默认情况下,您从分片中提取的 Kinesis 记录列表(目标大小由您定义)将传递给您的代码以进行处理。您可以按顺序执行此操作,也可以根据需要将它们分叉到线程中。直到您从该处理方法返回后,KCL 才会为您从分片请求更多记录。
【讨论】: