

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 整合 KPL 與生產者程式碼
<a name="kinesis-kpl-integration"></a>

Amazon Kinesis Producer Library (KPL) 會以個別程序執行，並使用 IPC 與您的父使用者程序通訊。此架構有時稱為[微服務](http://en.wikipedia.org/wiki/Microservices)，選用的主要原因有二：

**1) 即使 KPL 當機也不會造成您的使用者程序當機**  
您的程序可執行與 Kinesis Producer Library (KPL) 無關的任務，而且就算 KPL 當機也仍能繼續操作。您的父使用者程序也可重新啟動 KPL 並恢復到完全運作狀態 (此功能由官方包裝函式提供)。

例如，若 web 伺服器傳送指標至 Kinesis Data Streams，就算 Kinesis Data Streams 部分已停止運作，伺服器仍能繼續處理頁面。整部伺服器會由於 KPL 中存在錯誤而當機，以致造成不必要的停機。

**2) 任意用戶端均可支援**  
客戶當中肯定會有人使用非正式支援的語言。這類客戶也應能輕鬆使用 KPL。

## 建議使用矩陣
<a name="kinesis-kpl-integration-usage"></a>

下列用量矩陣會列出不同使用者的建議設定，並建議您是否及如何使用 KPL。請切記，如果啟用彙整，則必須連帶使用取消彙整以便在消費者端擷取記錄。


| 生產者端語言 | 消費者端語言 | KCL 版本 | 檢查點邏輯 | 能否使用 KPL？ | 警告 | 
| --- | --- | --- | --- | --- | --- | 
| Java 除外的任何語言 | \* | \* | \* | 否 | N/A | 
| Java | Java | 直接使用 Java 開發套件 | N/A | 是 | 如果使用彙整，則呼叫 GetRecords 後必須使用現成提供的取消彙整程式庫。 | 
| Java | Java 除外的任何語言 | 直接使用軟體開發套件 | N/A | 是 | 必須停用彙整。 | 
| Java | Java | 1.3.x | N/A | 是 | 必須停用彙整。 | 
| Java | Java  | 1.4.x | 不帶任何引數呼叫檢查點 | 是 | 無 | 
| Java | Java | 1.4.x | 使用顯式序號呼叫檢查點 | 是 | 停用彙整，或將程式碼改為使用擴展序號執行檢查點作業。 | 
| Java | Java 除外的任何語言  | 1.3.x \+ 多語言協助程式 \+ 特定語言包裝函式 | N/A | 是 | 必須停用彙整。 | 