本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Kinesis 用戶端程式庫
什麼是 Kinesis Client Library?
Kinesis Client Library (KCL) 是獨立的 Java 軟體程式庫,旨在簡化從 Amazon Kinesis Data Streams 消耗和處理資料的程序。KCL 會處理與分散式運算相關的許多複雜任務,讓開發人員專注於實作其商業邏輯以處理資料。它會管理各種活動,例如跨多個工作者的負載平衡、回應工作者失敗、檢查點處理過的記錄,以及回應串流中碎片數量的變更。
KCL 經常更新,以納入較新版本的基礎程式庫、安全性改善和錯誤修正。我們建議您使用最新版本的 KCL,以避免已知的問題,並從所有最新的改進中獲益。若要尋找最新的 KCL 版本,請參閱 KCL Github
重要
-
我們建議您使用最新的 KCL 版本,以避免已知的錯誤和問題。如果您使用的是 KCL 2.6.0 或更早版本,請升級至 KCL 2.6.1 或更新版本,以避免在串流容量變更時封鎖碎片處理的罕見情況。
-
KCL 是 Java 程式庫。支援 Java 以外的語言是使用 Java 型協助程式提供,稱為 MultiLangDaemon。MultiLangDaemon 透過 STDIN 和 STDOUT 與 KCL 應用程式互動。如需 GitHub 上的 MultiLangDaemon 的詳細資訊,請參閱 使用非 Java 語言開發具有 KCL 的消費者。
-
請勿使用 2.27.19 到 2.27.23 AWS SDK for Java 版搭配 KCL 3.x。這些版本包含導致與 KCL DynamoDB 用量相關的例外狀況錯誤的問題。我們建議您使用 2 AWS SDK for Java .28.0 版或更新版本,以避免此問題。
KCL 金鑰功能和優點
以下是 KCL 的主要功能和相關優點:
-
可擴展性:KCL 可將處理負載分散到多個工作者,讓應用程式動態擴展。您可以手動或使用自動擴展來擴展您的應用程式,而無需擔心負載重新分佈。
-
負載平衡:KCL 會自動平衡可用工作者的處理負載,進而使工作者的工作分佈均勻。
-
檢查點:KCL 會管理已處理記錄的檢查點,讓應用程式能夠從上次成功處理的位置繼續處理。
-
容錯能力:KCL 提供內建容錯能力機制,確保即使個別工作者失敗,資料處理仍會繼續。KCL 也提供at-least-once的交付。
-
處理串流層級變更:KCL 會適應因資料磁碟區變更而可能發生的碎片分割和合併。它透過確保子碎片僅在其父碎片完成和檢查點後才處理來維持排序。
-
監控:KCL 與 Amazon CloudWatch 整合,以進行消費者層級監控。
-
多語言支援:KCL 原生支援 Java,並透過 MultiLangDaemon 啟用多種非 Java 程式設計語言。