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

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

使用 Kinesis 客户端库

什么是 Kinesis 客户端库?

Kinesis 客户端库 (KCL) 是一个独立的 Java 软件库,旨在简化使用和处理来自亚马逊 Kinesis Data Streams 的数据的过程。 KCL处理许多与分布式计算相关的复杂任务,使开发人员能够专注于实现用于处理数据的业务逻辑。它管理诸如在多个工作程序之间进行负载平衡、响应工作器故障、检查已处理记录以及响应流中分片数量的变化等活动。

KCL经常更新,以纳入较新版本的底层库、安全改进和错误修复。我们建议您使用最新版本的,KCL以避免出现已知问题并从所有最新改进中受益。要查找最新KCL版本,请参阅 KCLGithub

重要
  • 我们建议您使用最新KCL版本,以避免出现已知的错误和问题。如果您使用的是 KCL 2.6.0 或更早版本,请升级到 KCL 2.6.1 或更高版本,以避免在流容量变化时出现可能阻塞共享处理的罕见情况。

  • KCL是一个 Java 库。使用名为的基于 Java 的守护程序提供对 Java 以外其他语言的支持。 MultiLangDaemon MultiLangDaemon一遍又一遍地与KCL应用程序交互STDIN。STDOUT有关 MultiLangDaemon on 的更多信息 GitHub,请参阅使用KCL非 Java 语言开发消费者

KCL主要特点和优点

以下是其主要功能和相关优点KCL:

  • 可扩展性:通过在多个工作人员之间分配处理负载,KCL使应用程序能够动态扩展。您可以手动或使用自动缩放功能向内或向外扩展应用程序,而不必担心负载重新分配。

  • 负载平衡:KCL自动平衡可用工作人员之间的处理负载,从而在工作人员之间均匀分配工作。

  • Check p KCL ointing:管理已处理记录的检查点,使应用程序能够从上次成功处理的位置恢复处理。

  • 容错:KCL提供内置的容错机制,确保即使个别工作人员出现故障,数据处理也能继续进行。 KCL还提供 at-least-once送货服务。

  • 处理流级别的变化:KCL适应由于数据量变化而可能发生的分片拆分和合并。它通过确保子分片只有在父分片完成并进行检查后才对其进行处理,从而保持排序。

  • 监控:KCL与 Amazon 集成 CloudWatch ,实现消费者级监控。

  • 多语言支持:KCL原生支持 Java,并支持多种非 Java 编程语言。 MultiLangDaemon