

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

# 将 KPL 与产生器代码集成
<a name="kinesis-kpl-integration"></a>

Amazon Kinesis Producer Library（KPL）在单独进程中运行，并使用 IPC 与您的父用户进程通信。此架构有时称为[微服务](http://en.wikipedia.org/wiki/Microservices)，出于两个主要原因选择该架构：

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

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

**2) 可支持任意客户端**  
始终存在使用官方支持的语言之外的语言的客户。这些客户也应能轻松使用 KPL。

## 推荐的使用矩阵
<a name="kinesis-kpl-integration-usage"></a>

以下使用矩阵列出了不同用户的推荐设置，并向您提供了有关是否以及如何使用 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 \+ 多语言守护进程 \+ 特定于语言的包装程序 | 不适用 | 是 | 必须禁用聚合。 | 