KCL 概念 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

KCL 概念

本节说明了 Kinesis Client Library (KCL) 的核心概念和交互功能。这些概念是开发和管理 KCL 消费端应用程序的基础。

  • KCL 消费端应用程序:使用 Kinesis Client Library 自定义构建的应用程序,旨在读取和处理 Kinesis 数据流中的记录。

  • 工作程序:KCL 消费端应用程序通常是分布式的,同时运行一个或多个工作程序。KCL 协调工作程序以分布式方式使用来自流的数据,并在多个工作程序之间平衡负载。

  • 调度器:KCL 工作程序用于开始处理数据的高级类。每个 KCL 工作程序都有一个调度器。调度器负责初始化和监督各种任务,包括同步 Kinesis 数据流的分片信息、跟踪工作程序中的分片分配以及根据分配给工作程序的分片处理来自流的数据。调度器可以采用多种影响调度器行为的配置,例如待处理流的名称以及 Amazon 凭证。调度器启动数据记录传输,使其从流传输至记录处理器。

  • 记录处理器:定义 KCL 消费端应用程序如何处理从数据流中接收的数据的逻辑。必须在记录处理器中实现您自己的自定义数据处理逻辑。KCL 工作程序可实例化调度器。然后,调度器为持有租约的每个分片实例化一个记录处理器。一个工作程序可以运行多个记录处理器。

  • 租约:定义工作程序和分片之间的分配。KCL 消费端应用程序使用租约将数据记录处理分配到多个工作程序中。每个分片在任何给定时间仅通过租约与一个工作程序绑定,而每个工作程序可以同时持有一份或多份租约。当工作程序因停止或故障而不再持有租约时,KCL 会指派其他工作程序承接租约。要了解有关租约的更多信息,请参阅 Github documentation: Lease Lifecycle

  • 租约表:唯一的 Amazon DynamoDB 表,用于跟踪 KCL 消费端应用程序的所有租约。每个 KCL 消费端应用程序都会创建自己的租约表。租约表用于跨工作程序维持状态,以协调数据的处理。有关更多信息,请参阅 KCL 中的 DynamoDB 元数据表和负载平衡

  • 检查点:将最后一次成功处理的记录的位置永久存储于分片中的过程。KCL 管理检查点操作,以确保在工作程序故障或应用程序重新启动时,可以从最后一个检查点操作位置恢复处理。检查点作为租约元数据的一部分存储于 DynamoDB 租约表中。这样工作程序就可以从前一个工作程序停止处继续处理。