選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 Amazon Kinesis Producer Library (KPL) 開發生產者

焦點模式
使用 Amazon Kinesis Producer Library (KPL) 開發生產者 - Amazon Kinesis Data Streams

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

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

Amazon Kinesis Data Streams 生產者是將使用者資料記錄放入 Kinesis 資料串流 (又稱為資料擷取) 的應用程式。Kinesis Producer Library (KPL) 簡化了生產者應用程式開發,讓開發人員能夠實現 Kinesis 資料串流的高寫入輸送量。

您可以使用 Amazon CloudWatch 對 KPL 進行監控。如需詳細資訊,請參閱使用 Amazon CloudWatch 監控 Kinesis Producer Library

注意

建議您升級至最新 KPL 版本。KPL 會定期更新為更新的版本,其中包括最新的相依性和安全性修補程式、錯誤修正,以及向後相容的新功能。如需詳細資訊,請參閱 https://github.com/awslabs/amazon-kinesis-producer/releases/

檢閱 KPL 的角色

KPL 是一套具高度可設定性的易用程式庫,能協助您對 Kinesis 資料串流進行寫入。此程式庫在您的生產者應用程式的程式碼與 Kinesis Data Streams API 動作之間擔任媒介。KPL 將執行以下主要任務:

  • 利用可設定的自動重試機制對一個或多個 Kinesis 資料串流進行寫入

  • 收集記錄並於每次請求時使用 PutRecords 將多筆記錄寫入多個碎片

  • 彙整使用者記錄以增加承載大小並提高傳輸量

  • Kinesis Client Library (KCL) 無縫整合以取消彙整取用者上的批次記錄

  • 代表您提交 Amazon CloudWatch 指標以提供關於生產者效能的資訊

請注意,KPL 與 AWS SDK 所提供的 Kinesis Data Streams API 不同。Kinesis Data Streams API 可協助您管理 Kinesis Data Streams 的許多層面 (包括建立串流、重新分片、放入與取得記錄),而 KPL 提供專用於擷取資料的抽象層。如需 Kinesis Data Streams API 的相關資訊,請參閱 Amazon Kinesis API 參考

了解使用 KPL 的優點

以下清單舉出使用 KPL 開發 Kinesis Data Streams 生產者的一些主要優點。

KPL 可用於同步或非同步使用案例。建議您使用具有較高效能的非同步界面,除非有具體的原因需要使用同步操作。如需以上兩種使用案例的詳細資訊及範例程式碼,請參閱使用 KPL 寫入 Kinesis 資料串流

效能優勢

KPL 可協助建置高效能的生產者。試想以下情況:您的 Amazon EC2 執行個體擔任代理,從數以百計或千計的低功率裝置收集 100 位元組的事件並將記錄寫入 Kinesis 資料串流。這些 EC2 執行個體每秒均須將成千個事件寫入您的資料串流。為達到所需的傳輸量,生產者必須實作複雜的邏輯 (如批次處理或多執行緒) 和重試邏輯並在消費者端取消彙整記錄。KPL 將為您執行所有這些任務。

消費者端易用性

對於使用 KCL 的 Java 取用者端開發人員來說,KPL 整合毫不費力。當 KCL 擷取含有多筆 KPL 使用者記錄的彙整 Kinesis Data Streams 記錄時,會自動叫用 KPL 先擷取個別的使用者記錄,然後再將其傳回給使用者。

取用者端開發人員若未使用 KCL 而是直接使用 API GetRecords 操作,則可利用 KPL Java 程式庫擷取個別的使用者記錄後再將其傳回給使用者。

生產者監控

您可使用 Amazon CloudWatch 和 KPL 收集、監控及分析您的 Kinesis Data Streams 生產者。KPL 將代表您向 CloudWatch 發出輸送量指標、錯誤指標及其他指標,並可設定成進行串流層級、碎片層級或生產者層級監控。

非同步架構

由於 KPL 可能會在將記錄傳送到 Kinesis Data Streams 之前緩衝記錄,因此不會強制發起人應用程式封鎖並等待確認記錄已到達伺服器,然後再繼續執行時間。將記錄放入 KPL 的呼叫一律立即傳回,不會等待傳送記錄或接收伺服器的回應。反而,其將建立 Future 物件用以稍後接收傳送記錄至 Kinesis Data Streams 的結果。這與 AWS SDK 中的非同步用戶端的行為相同。

了解何時不使用 KPL

KPL 可能引發程式庫中額外的處理延遲,最高達到 RecordMaxBufferedTime (使用者可設定)。RecordMaxBufferedTime 的值愈大,壓縮效率以及效能愈高。無法容忍此額外延遲的應用程式可能需要直接使用 AWS SDK。如需搭配 Kinesis Data Streams 使用 AWS SDK 的詳細資訊,請參閱 使用 Amazon Kinesis Data Streams API 搭配 開發生產者 AWS SDK for Java。如需 RecordMaxBufferedTime 以及 KPL 可供使用者設定的其他各項屬性的詳細資訊,請參閱 設定 Kinesis Producer Library

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。