轉返為先前的 KCL 版本 - Amazon DynamoDB

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

轉返為先前的 KCL 版本

本主題說明如何將取用者應用程式轉返為先前的 KCL 版本。轉返程序包含兩個步驟:

  1. 執行 KCL 移轉工具

  2. 重新部署先前 KCL 版本的程式碼。

步驟 1:執行 KCL 移轉工具

當您需要轉返至先前的 KCL 版本時,您必須執行 KCL 移轉工具。此工具會執行兩項重要任務:

  • 移除 DynamoDB 租用資料表上,稱為工作者指標資料表和全域次要索引的中繼資料資料表。這些成品由 KCL 3.x 建立,但當您轉返至先前版本時,不需要這些成品。

  • 此工具可讓所有工作者在 KCL 1.x 相容模式下執行,並開始使用先前 KCL 版本的負載平衡演算法。如果您使用 KCL 3.x 新負載平衡演算法時遇到問題,此步驟會立即緩解該問題。

重要

DynamoDB 中的協調器狀態資料表必須存在,且不得在移轉、轉返及向前復原過程中刪除。

注意

請務必讓取用者應用程式中的所有工作者,在指定時間使用相同的負載平衡演算法。KCL 移轉工具可確保 KCL 3.x 取用者應用程式中的所有工作者全數切換到 KCL 1.x 相容模式,以便在應用程式轉返至先前的 KCL 版本期間,所有工作者都執行相同的負載平衡演算法。

您可以在 KCL GitHub 儲存庫的指令碼目錄中,下載 KCL 移轉工具。從具備適當許可的工作者或主機執行指令碼,以寫入協調器狀態資料表、工作者指標資料表和租用資料表。確保已針對 KCL 取用者應用程式設定適當的 IAM 許可。使用指定的命令,每個 KCL 應用程式僅執行一次指令碼:

python3 ./KclMigrationTool.py --region region --mode rollback [--application_name applicationName] [--lease_table_name leaseTableName] [--coordinator_state_table_name coordinatorStateTableName] [--worker_metrics_table_name workerMetricsTableName]

Parameters

--region

區域取代為 AWS 區域。

--application_name

如果您使用 DynamoDB 中繼資料資料表 (租用資料表、協調器狀態資料表和工作者指標資料表) 的預設名稱,則需要此參數。如果您已為這些資料表指定自訂名稱,可以省略此參數。使用您現有應用程式的名稱取代 applicationName。如果未提供自訂名稱,工具會使用此名稱衍生預設資料表名稱。

--lease_table_name

當您已在 KCL 組態中自訂租用資料表的名稱時,需要此參數。如果您使用的是預設資料表名稱,可以省略此參數。使用您為租用資料表指定的自訂資料表名稱,取代 leaseTableName

--coordinator_state_table_name

當您在 KCL 組態中為自訂協調器狀態資料表名稱時,需要此參數。如果您使用的是預設資料表名稱,可以省略此參數。使用您為協調器狀態資料表指定的自訂資料表名稱,取代 coordinatorStateTableName

--worker_metrics_table_name

當您在 KCL 組態中自訂工作者指標資料表的名稱時,需要此參數。如果您使用的是預設資料表名稱,可以省略此參數。使用您為工作者指標資料表指定的自訂資料表名稱,取代 workerMetricsTableName

步驟 2:使用先前的 KCL 版本重新部署程式碼

重要

KCL 移轉工具產生的輸出中提及 2.x 版時,應解釋為提及 KCL 1.x 版。執行指令碼不會執行完整的轉返,只會切換到 KCL 1.x 版使用的負載平衡演算法。

執行轉返 KCL 移轉工具後,您會看到以下其中一則訊息:

訊息 1

「轉返已完成。您的應用程式先前執行 2x 相容功能。請使用先前的 KCL 版本部署程式碼,轉返至先前的應用程式二進位檔。」

必要動作:這表示您的工作者在 KCL 1.x 相容模式下執行。將具有先前 KCL 版本的程式碼,重新部署到您的工作者。

訊息 2

「轉返已完成。您的 KCL 應用程式先前執行 3x 功能,並會轉返至 2x 相容功能。如果您在短時間內沒看到緩解措施,請使用先前的 KCL 版本部署程式碼,轉返到先前的應用程式二進位檔。」

必要動作:這表示您的工作者是在 KCL 3.x 模式下執行,而 KCL 移轉工具會將所有工作者切換到 KCL 1.x 相容模式。將具有先前 KCL 版本的程式碼,重新部署到您的工作者。

訊息 3

「應用程式已轉返。所有可刪除的 KCLv3 資源都已清除,以避免產生費用,直到應用程式可以透過移轉向前復原為止。」

必要動作:這表示您的工作者已轉返,以在 KCL 1.x 相容模式下執行。將具有先前 KCL 版本的程式碼,重新部署到您的工作者。