View a markdown version of this page

轉返為先前的 KCL 版本 - Amazon Kinesis Data Streams

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

轉返為先前的 KCL 版本

本主題說明將 KCL 3.5.x 取用者復原至先前版本的步驟。轉返程序取決於您的應用程式目前處於哪個遷移階段。

重要

只有在從階段 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X) 轉返至階段 1 () 時,才需要 KCL 遷移工具CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1。如果您的應用程式仍在階段 1 中,您可以透過重新部署先前的程式碼來復原至先前的 KCL 版本,而無需執行工具。

從階段 1 轉返至先前的 KCL 版本

如果您的應用程式位於階段 1 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1),您可以透過重新部署先前的程式碼來轉返至先前的 KCL 版本。階段 1 與先前的 KCL 版本回溯相容,且不會在租用資料表中建立任何遷移特定項目。不需要遷移工具。

若要從階段 1 轉返:

  1. 將包含您先前 KCL 版本的程式碼重新部署至所有工作者。

從階段 2 轉返到階段 1

如果您的應用程式位於階段 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X),您必須使用 KCL 遷移工具轉返至階段 1。這是一個兩步驟的程序:

  1. 執行 KCL 移轉工具

  2. 使用階段 1 組態重新部署程式碼 (選用)。

重要

您無法復原兩個層級 (從階段 2 回復到階段 1,然後回復到先前的 KCL 版本)。KCL 遷移工具只會處理階段 2 到階段 1 的復原。

注意

KCL Migration Tool 不會從租用資料表刪除非租用項目。這些項目與先前的 KCL 版本不回溯相容,因此無法直接將階段 2 的兩層級復原至先前的 KCL 版本。

步驟 1:執行 KCL 移轉工具

當您需要從階段 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X) 轉返到階段 1 時,請執行 KCL 遷移工具。此工具會執行下列任務:

  • 它會移除 DynamoDB 中租用資料表上的全域次要索引 (LeaseOwnerToLeaseKeyIndex)。此索引是由 KCL 3.5.x 建立,但當您轉返至階段 1 時不需要。

  • 它可讓所有工作者在與 KCL 2.x 相容的模式下執行,並開始使用先前 KCL 版本中使用的負載平衡演算法。如果您在 KCL 3.5.x 中遇到新負載平衡演算法的問題,這會立即緩解問題。

重要

不得在遷移、轉返和轉返過程中刪除租用資料表中的協調器狀態項目 (Migration3.0)。

注意

消費者應用程式中的所有工作者都必須在特定時間使用相同的負載平衡演算法。KCL Migration Tool 可確保 KCL 3.5.x 取用者應用程式中的所有工作者都切換到 KCL 2.x 相容模式,以便所有工作者在滾動部署回階段 1 期間執行相同的負載平衡演算法。

您可以在 KCL GitHub 儲存庫的指令碼目錄中,下載 KCL 移轉工具。從任何工作者或任何具有寫入和更新租用資料表所需許可的主機執行指令碼。如需執行指令碼KCL 取用者應用程式所需的 IAM 許可所需的 IAM 許可,請參閱 。每個 KCL 應用程式只能執行指令碼一次。使用以下命令執行 KCL Migration Tool:

python3 ./KclMigrationTool.py --region <region> --mode rollback [--application_name <applicationName>] [--lease_table_name <leaseTableName>]

參數

  • --region:將 取代<region>為您的 AWS 區域。

  • --application_name:如果您使用租用資料表的預設名稱,則需要此參數。如果您已為租用資料表指定自訂名稱,您可以省略此參數。<applicationName> 將 取代為您實際的 KCL 應用程式名稱。如果未提供自訂名稱,工具會使用此名稱衍生預設資料表名稱。

  • --lease_table_name (選用):當您在 KCL 組態中為租用資料表設定自訂名稱時,需要此參數。如果您使用的是預設資料表名稱,可以省略此參數。<leaseTableName> 將 取代為您為租用資料表指定的自訂資料表名稱。

步驟 2:使用階段 1 組態重新部署程式碼 (選用)

執行 KCL 遷移工具以從階段 2 轉返到階段 1 後,您會看到以下其中一個訊息:

  • 訊息 1:「轉返已完成。您的應用程式正在執行階段 2 (2x 相容) 功能。請使用階段 1 組態部署 KCL 3.5.x 應用程式,以轉返至階段 1。」

    • 必要動作:您的工作者是在階段 2 (2x 相容) 模式下執行。使用階段 1 組態 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1) 將 KCL 3.5.x 應用程式重新部署到您的工作者。

  • 訊息 2:「轉返已完成。您的 KCL 應用程式正在執行階段 2 (3x) 功能,並已復原至階段 2 (2x 相容) 模式。如果您在短時間內沒有看到緩解措施,請使用階段 1 組態部署 KCL 3.5.x 應用程式,以回復到階段 1。」

    • 必要動作:您的工作者是在階段 2 (3x) 模式下執行,KCL Migration Tool 會將他們復原回階段 2 (2x 相容) 模式。如果問題已解決,您不需要重新部署。如果問題仍然存在,請使用階段 1 組態 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1) 將 KCL 3.5.x 應用程式重新部署到您的工作者。