本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Kinesis Client Library (KCL) 來處理 Amazon Keyspaces 串流
本主題說明如何使用 Kinesis Client Library (KCL) 來取用和處理來自 Amazon Keyspaces 變更資料擷取 (CDC) 串流的資料。
使用 Kinesis Client Library (KCL) 提供許多好處,而不是直接使用 Amazon Keyspaces Streams API,例如:
-
內建碎片歷程追蹤和迭代器處理。
-
跨工作者的自動負載平衡。
-
容錯能力和從工作者故障中復原。
-
檢查點以追蹤處理進度。
-
調整串流容量的變更。
-
用於處理 CDC 記錄的簡化分散式運算。
下一節概述為什麼和如何使用 Kinesis Client Library (KCL) 來處理串流,並提供使用 KCL 處理 Amazon Keyspaces CDC 串流的範例。
如需定價的相關資訊,請參閱 Amazon Keyspaces (適用於 Apache Cassandra) 定價
什麼是 Kinesis Client Library?
Kinesis Client Library (KCL) 是獨立的 Java 軟體程式庫,旨在簡化從串流取用和處理資料的程序。KCL 會處理許多與分散式運算相關的複雜任務,讓您專注於在處理串流資料時實作商業邏輯。KCL 會管理多項活動,例如跨多個工作者的負載平衡、回應工作者故障、檢查點已處理的記錄,以及回應串流中碎片數量的變更。
若要處理 Amazon Keyspaces CDC 串流,您可以使用 KCL 中找到的設計模式來處理串流碎片和串流記錄。KCL 會在低階 Kinesis Data Streams API 上提供有用的抽象,可以簡化程式碼。如需 KCL 的詳細資訊,請參閱《Amazon Kinesis Data Streams 開發人員指南》中的使用 KCL 開發消費者。
若要使用 KCL 撰寫應用程式,請使用 Amazon Keyspaces Streams Kinesis Adapter。Kinesis Adapter 實作 Kinesis Data Streams 介面,讓您可以使用 KCL 來取用和處理來自 Amazon Keyspaces 串流的記錄。如需如何設定和安裝 Amazon Keyspaces 串流 Kinesis 轉接器的指示,請造訪 GitHub
下圖顯示這些程式庫如何彼此互動。

KCL 經常更新,以納入較新版本的基礎程式庫、安全性改善和錯誤修正。我們建議您使用最新版本的 KCL,以避免已知問題並從所有最新的改進中獲益。若要尋找最新的 KCL 版本,請參閱 KCL GitHub 儲存庫
KCL 概念
在使用 KCL 實作消費者應用程式之前,您應該了解下列概念:
- KCL 消費者應用程式
-
KCL 取用者應用程式是處理來自 Amazon Keyspaces CDC 串流資料的程式。KCL 可做為取用者應用程式程式碼與 Amazon Keyspaces CDC 串流之間的媒介。
- 工作者
-
工作者是 KCL 取用者應用程式的執行單位,可處理來自 Amazon Keyspaces CDC 串流的資料。您的應用程式可以執行分佈在多個執行個體的多個工作者。
- 記錄處理器
-
記錄處理器是應用程式中的邏輯,可處理 Amazon Keyspaces CDC 串流中碎片的資料。記錄處理器會由工作者針對其管理的每個碎片進行執行個體化。
- 租用
-
租用代表碎片的處理責任。工作者使用租用來協調哪個工作者正在處理哪個碎片。KCL 會將租用資料存放在 Amazon Keyspaces 中的資料表中。
- 檢查點
-
檢查點是碎片中位置的記錄,直到記錄處理器成功處理記錄為止。檢查點可讓您的應用程式在工作者失敗時,從停止的地方繼續處理。
使用 Amazon Keyspaces Kinesis 轉接器,您可以開始針對 KCL 介面進行開發,並將 API 呼叫無縫導向 Amazon Keyspaces 串流端點。如需可用端點的清單,請參閱 如何在 Amazon Keyspaces 中存取 CDC 串流端點。
當應用程式啟動後,其會呼叫 KCL 以將工作者執行個體化。您必須向工作者提供應用程式的組態資訊,例如串流描述項和 AWS 登入資料,以及您提供的記錄處理器類別名稱。當其在紀錄處理器中執行程式碼時,工作者會執行下列任務:
-
連線到串流
-
列舉串流內的碎片
-
與其他工作者 (若有) 協調碎片關聯性
-
為其所管理的每個碎片執行個體化記錄處理器
-
從串流提取紀錄
-
將記錄推送至對應的記錄處理器
-
對已處理的記錄執行檢查點作業
-
當工作者執行個體數目變更時,平衡碎片與工作者的關聯
-
當碎片進行分割時,平衡碎片與工作者的關聯