本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
升級 Apache Kafka 版本
您可以將現有的 MSK 叢集升級至較新版本的 Apache Kafka。升級叢集的 Kafka 版本之前,請確認用戶端軟體版本支援新 Kafka 版本中的功能。
如需如何在升級期間使叢集高度可用的詳細資訊,請參閱 建置高可用性叢集。
使用 升級 Apache Kafka 版本 AWS Management Console
開啟位於 https://console.aws.amazon.com/msk/
的 Amazon MSK 主控台。 -
在導覽列中,選擇您建立 MSK 叢集的區域。
-
選擇您要升級的 MSK 叢集。
-
在屬性索引標籤上,選擇 Apache Kafka 版本區段中的升級。
-
在 Apache Kafka 版本區段中,執行下列動作:
-
在選擇 Apache Kafka 版本下拉式清單中,選擇您要升級的目標版本。例如,選擇
3.9.x
。 -
(選用) 選擇檢視版本相容性,以驗證叢集目前版本與可用升級版本之間的相容性。然後,選取選擇以繼續。
注意
Amazon MSK 支援就地升級至大多數 Apache Kafka 版本。不過,從 ZooKeeper 型 Kafka 版本升級至 KRaft 型版本時,您必須建立新的叢集。然後,將您的資料複製到新叢集,並將用戶端切換到新叢集。
-
(選用) 選擇更新叢集組態核取方塊,以套用與新版本相容的組態更新。這可啟用新版本的功能和改進。
如果您需要維護現有的自訂組態,可以略過此步驟。
注意
-
伺服器端升級不會自動更新用戶端應用程式。
-
為了維持叢集穩定性,不支援版本降級。
-
-
選擇升級以開始程序。
-
使用 升級 Apache Kafka 版本 AWS CLI
執行下列命令,使用您在建立叢集時獲得的 Amazon Resource Name (ARN) 取代
ClusterArn
。若您沒有叢集的 ARN,可透過列出所有叢集來找到該 ARN。如需詳細資訊,請參閱列出 Amazon MSK 叢集。aws kafka get-compatible-kafka-versions --cluster-arn
ClusterArn
此命令的輸出包含您可以升級叢集的 Apache Kafka 版本清單。輸出如以下範例所示:
{ "CompatibleKafkaVersions": [ { "SourceVersion": "2.2.1", "TargetVersions": [ "2.3.1", "2.4.1", "2.4.1.1", "2.5.1" ] } ] }
-
執行下列命令,使用您在建立叢集時獲得的 Amazon Resource Name (ARN) 取代
ClusterArn
。若您沒有叢集的 ARN,可透過列出所有叢集來找到該 ARN。如需詳細資訊,請參閱列出 Amazon MSK 叢集。將叢集目前版本取代為
Current-Cluster-Version
。對於TargetVersion
,您可以指定前一個命令輸出中的任何目標版本。重要
叢集版本不是簡單的整數。若要尋找叢集的目前版本,請使用 DescribeCluster 操作或 describe-cluster
AWS CLI 命令。範例版本為 KTVPDKIKX0DER
。aws kafka update-cluster-kafka-version --cluster-arn
ClusterArn
--current-versionCurrent-Cluster-Version
--target-kafka-versionTargetVersion
前一個命令的輸出如以下 JSON 所示:
{ "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef" }
-
如要取得
update-cluster-kafka-version
操作的結果,請執行下列命令,使用您在update-cluster-kafka-version
命令輸出中取得的 ARN 取代ClusterOperationArn
。aws kafka describe-cluster-operation --cluster-operation-arn
ClusterOperationArn
此
describe-cluster-operation
命令的輸出如以下 JSON 範例所示。{ "ClusterOperationInfo": { "ClientRequestId": "62cd41d2-1206-4ebf-85a8-dbb2ba0fe259", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2021-03-11T20:34:59.648000+00:00", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_IN_PROGRESS", "OperationSteps": [ { "StepInfo": { "StepStatus": "IN_PROGRESS" }, "StepName": "INITIALIZE_UPDATE" }, { "StepInfo": { "StepStatus": "PENDING" }, "StepName": "UPDATE_APACHE_KAFKA_BINARIES" }, { "StepInfo": { "StepStatus": "PENDING" }, "StepName": "FINALIZE_UPDATE" } ], "OperationType": "UPDATE_CLUSTER_KAFKA_VERSION", "SourceClusterInfo": { "KafkaVersion": "2.4.1" }, "TargetClusterInfo": { "KafkaVersion": "2.6.1" } } }
如果
OperationState
具有值UPDATE_IN_PROGRESS
,請稍候一段時間,然後再次執行describe-cluster-operation
命令。操作完成時,OperationState
的值會變成UPDATE_COMPLETE
。由於 Amazon MSK 完成操作所需的時間不盡相同,因此您可能需要重複檢查,直到操作完成為止。
使用 API 升級 Apache Kafka 版本
叫用 GetCompatibleKafkaVersions 操作,以取得您可以升級叢集的 Apache Kafka 版本清單。
叫用 UpdateClusterKafkaVersion 操作,將叢集升級至其中一個相容的 Apache Kafka 版本。