本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
轉返為先前的 KCL 版本
本主題說明如何將取用者應用程式轉返為先前的 KCL 版本。轉返程序包含兩個步驟:
-
執行 KCL 移轉工具
。 -
重新部署先前 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 儲存庫
python3 ./KclMigrationTool.py --regionregion--mode rollback [--application_nameapplicationName] [--lease_table_nameleaseTableName] [--coordinator_state_table_namecoordinatorStateTableName] [--worker_metrics_table_nameworkerMetricsTableName]
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 版本的程式碼,重新部署到您的工作者。