Amazon Kinesis Data Streams
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

将 KPL 与创建器代码集成

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

1) 您的用户进程将不会发生崩溃,即使 KPL 发生崩溃也是如此

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

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

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 + 多语言守护进程 + 特定于语言的包装程序 不适用 必须禁用聚合。

本页内容: