本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
KPL与生产者代码集成
Kinesis Producer 库 (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 | SDK直接使用 Java | 不适用 | 是 | 如果使用聚合,您必须在 GetRecords 调用后使用提供的取消聚合库。 |
Java | 除 Java 之外的任何语言 | SDK直接使用 | 不适用 | 是 | 必须禁用聚合。 |
Java | Java | 1.3.x | 不适用 | 是 | 必须禁用聚合。 |
Java | Java | 1.4.x | 调用不带任何参数的检查点 | 是 | 无 |
Java | Java | 1.4.x | 调用带明确序列号的检查点 | 是 | 禁用聚合或更改代码以使用扩展的序列号进行检查点操作。 |
Java | 除 Java 之外的任何语言 | 1.3.x + 多语言守护进程 + 特定于语言的包装程序 | 不适用 | 是 | 必须禁用聚合。 |