本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新 Apache Kafka 版本
您可以将现有 MSK 集群更新为 Apache Kafka 的更新版本。您无法将它更新为较旧版本。在更新 MSK 集群的 Apache Kafka 版本时,还要检查您的客户端软件,以确保其版本允许您使用集群的新 Apache Kafka 版本的功能。Amazon MSK 仅更新服务器软件。它不会更新您的客户端。
有关如何在更新期间使集群高度可用的信息,请参阅构建高度可用的集群。
您无法更新 MSK 集群 的 Apache Kafka 版本,但这不是 每个代理的分区数中所述的限制。
使用 AWS 管理控制台 更新 Apache Kafka 版本
-
Open the Amazon MSK console at https://console.aws.amazon.com/msk/
. -
选择要更新 Apache Kafka 版本的 MSK 集群。
-
在 Details (详细信息) 选项卡上,选择 Upgrade the Apache Kafka version.
使用 AWS CLI 更新 Apache Kafka 版本
-
运行以下命令,同时替换
ClusterArn
替换为您在创建集群时获取的 Amazon 资源名称 (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" ] } ] }
-
运行以下命令,同时替换
ClusterArn
替换为您在创建集群时获取的 Amazon 资源名称 (ARN)。如果您没有该集群的 ARN,可以通过列出所有集群来找到它。有关更多信息,请参阅列出 Amazon MSK 集群。Replace
Current-Cluster-Version
替换为当前版本的集群。对于TargetVersion
您可以指定上一个命令输出中的任何目标版本。重要 集群版本不是简单的整数。您可以通过描述集群来获取当前版本。示例版本是
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
操作的结果,请运行以下命令,并将ClusterOperationArn
替换为您在update-cluster-kafka-version
命令输出中获取的 ARN。aws kafka describe-cluster-operation --cluster-operation-arn
ClusterOperationArn
该
describe-cluster-operation
命令的输出如以下 JSON 示例所示。{ "ClusterOperationInfo": { "ClientRequestId": "c0b7af47-8591-45b5-9c0c-909a1a2c99ea", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2019-09-25T23:48:04.794Z", "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.2.1" }, "TargetClusterInfo": { "KafkaVersion": "2.5.1" } } }
如果
OperationState
的值为UPDATE_IN_PROGRESS
,请等待一段时间,然后再次运行describe-cluster-operation
命令。操作完成后,OperationState
的值变为UPDATE_COMPLETE
。
使用 API 更新 Apache Kafka 版本
-
调用 GetCompatibleKafkaVersions 操作以获取您可以将集群更新到的 Apache Kafka 版本的列表。
-
调用 UpdateClusterKafkaVersion 操作以将集群更新到兼容的 Apache Kafka 版本之一。