将 KPL 与创建器代码集成 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 KPL 与创建器代码集成

Kinesis Producer Library(KPL)在单独进程中运行,并使用 IPC 与您的父用户进程通信。此架构有时称为微服务,出于两个主要原因选择该架构:

1) 即使 KPL 发生崩溃,也不会妨碍您的用户进程

您的进程可具有与 Kinesis Data Streams 不相关的任务,并且在 KPL 发生崩溃时仍能继续运行。对于您的父用户进程来说,也可重新启动 KPL 并恢复到完全运行状态(此功能位于正式包装程序中)。

例如,将指标发送到 Kinesis Data Streams 的 Web 服务器;即使 Kinesis Data Streams 部分已停止运行,该服务器仍能继续使用页面。由于 KPL 中存在错误,导致整个服务器发生崩溃,从而造成不必要的中断。

2) 可支持任意客户端

始终存在使用官方支持的语言之外的语言的客户。这些客户也应能轻松使用 KPL。

推荐的使用矩阵

以下使用矩阵枚举了不同用户的推荐设置,并向您提供了有关是否以及如何使用 KPL 的建议。请记住,如果启用聚合,则还必须使用取消聚合来提取消费端端的记录。

创建器端语言 消费端端语言 KCL 版本 检查点逻辑 您是否可以使用 KPL? 警告
除 Java 之外的任何语言 * * * 不适用
Java Java 直接使用 Java 软件开发工具包 不适用 如果使用聚合,您必须在 GetRecords 调用后使用提供的取消聚合库。
Java 除 Java 之外的任何语言 直接使用软件开发工具包 不适用 必须禁用聚合。
Java Java 1.3.x 不适用 必须禁用聚合。
Java Java 1.4.x 调用不带任何参数的检查点
Java Java 1.4.x 调用带明确序列号的检查点 禁用聚合或更改代码以使用扩展的序列号进行检查点操作。
Java 除 Java 之外的任何语言 1.3.x + 多语言守护进程 + 特定于语言的包装程序 不适用 必须禁用聚合。