使用 DynamoDB Streams Kinesis Adapter 处理流记录
使用 Amazon Kinesis Adapter 是使用来自 Amazon DynamoDB 的流的建议方法。DynamoDB Streams API 有意与 Kinesis Data Streams 的 API 类似。在这两种服务中,数据流都由分片组成,分片是流记录的容器。这两种服务的 API 都包含 ListStreams
、DescribeStream
、GetShards
和 GetShardIterator
操作。(虽然这些 DynamoDB Streams 操作与 Kinesis Data Streams 中的对应操作类似,但它们并不完全相同。)
作为 DynamoDB Streams 用户,您可以使用 KCL 中找到的设计模式来处理 DynamoDB Streams 分片和流记录。若要执行此操作,请使用 DynamoDB Streams Kinesis Adapter。Kinesis Adapter 实现 Kinesis Data Streams 接口,以便 KCL 可用于使用和处理来自 DynamoDB Streams 的记录。有关如何设置和安装 DynamoDB Streams Kinesis Adapter 的说明,请参阅 GitHub 存储库
您可以使用 Kinesis 客户端库 (KCL) 为 Kinesis Data Streams 编写应用程序。KCL 提供低级 Kinesis Data Streams API 之上的有用抽象来简化编码。有关 KCL 的更多信息,请参阅 Amazon Kinesis Data Streams 开发人员指南中的使用 Kinesis 客户端库开发使用者。
DynamoDB 建议将 KCL 版本 3.x 与适用于 Java 的 AWS SDK v2.x 一起使用。当前 KCL 版本 1.x 与适用于 Java 的 AWS SDK v1.x 在过渡期间将按照 AWS SDKs and Tools maintenance policy,在其整个生命周期内继续按预期得到全面支持。
注意
Amazon Kinesis Client Library(KCL)版本 1.x 和 2.x 已过时。KCL 1.x 将于 2026 年 1 月 30 日终止支持。我们强烈建议您在 2026 年 1 月 30 日之前,将使用版本 1.x 的 KCL 应用程序迁移到最新的 KCL 版本。要查找最新的 KCL 版本,请访问 Amazon Kinesis Client Library 页面
以下图表显示了这些库之间的交互方式。

有了 DynamoDB Streams Kinesis Adapter,您可以开始针对 KCL 接口进行开发,使 API 调用无缝定向到 DynamoDB Streams 端点。
应用程序启动后,调用 KCL 来实例化工作进程。必须为工作进程提供应用程序的配置信息,如流描述符和 AWS 凭证,以及您提供的记录处理器类的名称。在记录处理器中运行代码时,工作进程执行以下任务:
-
连接到流
-
枚举流中的分片
-
协调与其他工作程序的分片关联(如果有)
-
为其管理的每个分片实例化记录处理器
-
从流中提取记录
-
将记录推送到对应的记录处理器
-
对已处理记录进行检查点操作
-
在工作程序实例计数更改时均衡分片与工作程序的关联
-
在分片被拆分时平衡分片与工作程序的关联
注意
有关此处列出的 KCL 概念的说明,请参阅 Amazon Kinesis Data Streams 开发人员指南中的使用 Kinesis 客户端库开发使用者。
有关将流与 AWS Lambda 配合使用的更多信息,请参阅 DynamoDB Streams 和 AWS Lambda 触发器