选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Amazon Kinesis Producer Library(KPL)开发产生器

聚焦模式
使用 Amazon Kinesis Producer Library(KPL)开发产生器 - Amazon Kinesis Data Streams

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

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

Amazon Kinesis Data Streams 创建器是指将用户数据记录放入 Kinesis 数据流中(也称为数据摄取)的应用程序。Kinesis Producer 库 (KPL) 简化了创建器应用程序的开发,使开发人员能够实现对 Kinesis 数据流的高写入吞吐量。

您可以通过 Amazon CloudWatch 监控 KPL。有关更多信息,请参阅 使用亚马逊监控 Kinesis 制作人库 CloudWatch

注意

建议您升级到最新 KPL 版本。KPL 会定期更新至最新版本,包括最新依赖项和安全补丁、错误修复以及向后兼容的新功能。有关更多信息,请参阅 https://github.com/awslabs/amazon-kinesis-producer/releases/

查看 KPL 的作用

KPL 是一个高度可配置的库 easy-to-use,可帮助您写入 Kinesis 数据流。它在您的创建器应用程序代码和 Kinesis Data Streams API 操作之间充当中介。KPL 执行以下主要任务:

  • 利用可配置的自动重试机制对一个或多个 Kinesis 数据流进行写入

  • 收集记录并使用 PutRecords 根据请求将多条记录写入多个分片

  • 聚合用户记录以增加负载大小并提高吞吐量

  • Kinesis Client Library(KCL)无缝集成以在消费端上取消聚合批记录

  • 代表您提交 Amazon CloudWatch 指标,以了解制作人的绩效

请注意,KPL 与中提供的 Kinesis Data Streams API 不同。AWS SDKsKinesis Data Streams API 可帮助您管理 Kinesis Data Streams 的许多方面(包括创建流、重新分片以及放置并获取记录),而 KPL 提供专用于摄取数据的提取层。有关 Kinesis Data Streams API 的信息,请参阅 Amazon Kinesis API Reference

了解使用 KPL 的优势

以下列表说明了使用 KPL 开发 Kinesis Data Streams 创建器的部分主要优势。

KPL 可在同步或异步使用案例中使用。除非存在使用同步操作的具体原因,否则建议您使用异步接口的较高性能。有关这两种使用案例和示例代码的更多信息,请参阅 使用 KPL 写入 Kinesis Data Streams

性能优势

KPL 可帮助构建高性能创建器。假设您的 Amazon EC2 实例充当代理,用于从成百上千台低功耗设备收集 100 字节的事件并将记录写入 Kinesis 数据流。每个 EC2实例必须每秒向您的数据流写入数千个事件。要实现所需的吞吐量,创建器必须实施复杂逻辑(例如,批处理或多线程处理)及重试逻辑并在消费端端取消记录聚合。KPL 为您执行所有此类任务。

消费端端易于使用

对于使用采用 Java 的 KCL 的消费端端开发人员而言,KPL 无需额外工作即可集成。当 KCL 检索包含多个 KPL 用户记录的已聚合 Kinesis Data Streams 记录时,它将自动调用 KPL,以在将单个用户记录返还到用户之前提取此类记录。

对于未使用 KCL 而是直接使用 API 操作 GetRecords 的消费端端开发人员而言,KPL Java 库可用于在将用户记录返还给用户之前提取此类记录。

创建器监控

您可以使用 CloudWatch 亚马逊和 KPL 收集、监控和分析您的 Kinesis Data Streams 制作者。KPL 代表您向 CloudWatch 发送吞吐量、错误和其他指标,并且可以配置为在流、分片或生产者级别进行监控。

异步架构

由于 KPL 可能会在将记录发送到 Kinesis Data Streams 之前对其进行缓冲,因此在继续运行之前,它不会强制调用方应用程序屏蔽并等待确认记录已到达服务器。用于将记录放入 KPL 中的调用应始终立即返回,并且不等待发送记录或接收来自服务器的响应。相反,将创建一个 Future 对象,该对象稍后将接收向 Kinesis Data Streams 发送记录的结果。这与 AWS SDK 中的异步客户端行为相同。

了解何时不使用 KPL

当 KPL 会导致库(用户可配置)中产生高达 RecordMaxBufferedTime 的额外处理延迟时。RecordMaxBufferedTime 值越大,产生的包装效率和性能就越高。无法容忍这种额外延迟的应用程序可能需要直接使用 AWS SDK。有关将软件开发工具包与 Kinesis AWS Data Streams 配合使用的更多信息,使用 Amazon Kinesis Data Streams API 开发制作人 AWS SDK for Java请参阅。有关 RecordMaxBufferedTime 和 KPL 其他用户可配置属性的更多信息,请参阅 配置 Kinesis Producer Library

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。