

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

# 使用 Kinesis Client Library (KCL) 來處理 Amazon Keyspaces 串流
<a name="cdc_how-to-use-kcl"></a>

本主題說明如何使用 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) 定價](https://aws.amazon.com/keyspaces/pricing)。

## 什麼是 Kinesis Client Library？
<a name="cdc-kcl-what-is"></a>

Kinesis Client Library (KCL) 是獨立的 Java 軟體程式庫，旨在簡化從串流取用和處理資料的程序。KCL 會處理許多與分散式運算相關的複雜任務，讓您專注於在處理串流資料時實作商業邏輯。KCL 會管理多項活動，例如跨多個工作者的負載平衡、回應工作者故障、對已處理的記錄進行檢查點，以及回應串流中碎片數量的變更。

若要處理 Amazon Keyspaces CDC 串流，您可以使用 KCL 中找到的設計模式來使用串流碎片和串流記錄。KCL 會在低階 Kinesis Data Streams API 上提供有用的抽象，可以簡化程式碼。如需 KCL 的詳細資訊，請參閱《*Amazon Kinesis Data Streams 開發人員指南》中的*[使用 KCL 開發消費者](https://docs.aws.amazon.com/kinesis/latest/dev/develop-kcl-consumers.html)。

 若要使用 KCL 撰寫應用程式，請使用 Amazon Keyspaces Streams Kinesis Adapter。Kinesis Adapter 會實作 Kinesis Data Streams 介面，讓您可以使用 KCL 來取用和處理來自 Amazon Keyspaces 串流的記錄。如需如何設定和安裝 Amazon Keyspaces 串流 Kinesis 轉接器的指示，請造訪 [GitHub](https://github.com/aws/keyspaces-streams-kinesis-adapter) 儲存庫。

下圖顯示這些程式庫如何彼此互動。

![處理 Amazon Keyspaces CDC 串流記錄時，用戶端應用程式與 Kinesis Data Streams、KCL、Amazon Keyspaces Streams Kinesis Adapter 和 Amazon Keyspaces APIs 之間的互動。](http://docs.aws.amazon.com/zh_tw/keyspaces/latest/devguide/images/keyspaces-streams-kinesis-adapter.png)


KCL 經常更新，以納入較新版本的基礎程式庫、安全性改善和錯誤修正。我們建議您使用最新版本的 KCL，以避免已知問題並從所有最新的改進中獲益。若要尋找最新的 KCL 版本，請參閱 [KCL GitHub 儲存庫](https://github.com/awslabs/amazon-kinesis-client)。

## KCL 概念
<a name="cdc-kcl-concepts"></a>

在使用 KCL 實作消費者應用程式之前，您應該了解下列概念：

**KCL 消費者應用程式**  
KCL 取用者應用程式是處理來自 Amazon Keyspaces CDC 串流資料的程式。KCL 可做為取用者應用程式程式碼與 Amazon Keyspaces CDC 串流之間的媒介。

**工作者**  
工作者是 KCL 取用者應用程式的執行單位，可處理來自 Amazon Keyspaces CDC 串流的資料。您的應用程式可以執行分佈在多個執行個體的多個工作者。

**記錄處理器**  
記錄處理器是應用程式中的邏輯，可處理 Amazon Keyspaces CDC 串流中碎片的資料。記錄處理器會由工作者針對其管理的每個碎片進行執行個體化。

**租用**  
租用代表碎片的處理責任。工作者使用租用來協調哪個工作者正在處理哪個碎片。KCL 會將租用資料存放在 Amazon DynamoDB 的資料表中。

**檢查點**  
檢查點是碎片中位置的記錄，直到記錄處理器成功處理記錄為止。檢查點可讓您的應用程式在工作者失敗時，從停止的地方繼續處理。

使用 Amazon Keyspaces Kinesis 轉接器，您可以開始針對 KCL 介面進行開發，並將 API 呼叫無縫導向 Amazon Keyspaces 串流端點。如需可用端點的清單，請參閱 [如何在 Amazon Keyspaces 中存取 CDC 串流端點](CDC_access-endpoints.md)。

當應用程式啟動後，其會呼叫 KCL 以將工作者執行個體化。您必須向工作者提供應用程式的組態資訊，例如串流描述項和 AWS 登入資料，以及您提供的記錄處理器類別名稱。當其在紀錄處理器中執行程式碼時，工作者會執行下列任務：
+ 連線到串流
+ 列舉串流內的碎片
+ 與其他工作者 (若有) 協調碎片關聯性
+ 為其所管理的每個碎片執行個體化記錄處理器
+ 從串流提取紀錄
+ 將記錄推送至對應的記錄處理器
+ 對已處理的記錄執行檢查點作業
+ 當工作者執行個體數目變更時，平衡碎片與工作者的關聯
+ 當碎片進行分割時，平衡碎片與工作者的關聯