更新 Apache Kafka 版本 - Amazon Managed Streaming for Apache Kafka
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新 Apache Kafka 版本

您可以将现有 MSK 集群更新为 Apache Kafka 的更新版本。您无法将它更新为较旧版本。在更新 MSK 集群的 Apache Kafka 版本时,还要检查您的客户端软件,以确保其版本允许您使用集群的新 Apache Kafka 版本的功能。Amazon MSK 仅更新服务器软件。它不会更新您的客户端。

有关如何在更新期间使集群高度可用的信息,请参阅构建高度可用的集群

重要

您无法更新 MSK 集群 的 Apache Kafka 版本,但这不是 每个代理的分区数中所述的限制。

使用 AWS 管理控制台 更新 Apache Kafka 版本

  1. Open the Amazon MSK console at https://console.aws.amazon.com/msk/.

  2. 选择要更新 Apache Kafka 版本的 MSK 集群。

  3. Details (详细信息) 选项卡上,选择 Upgrade the Apache Kafka version.

使用 AWS CLI 更新 Apache Kafka 版本

  1. 运行以下命令,同时替换 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" ] } ] }
  2. 运行以下命令,同时替换 ClusterArn 替换为您在创建集群时获取的 Amazon 资源名称 (ARN)。如果您没有该集群的 ARN,可以通过列出所有集群来找到它。有关更多信息,请参阅列出 Amazon MSK 集群

    Replace Current-Cluster-Version 替换为当前版本的集群。对于 TargetVersion 您可以指定上一个命令输出中的任何目标版本。

    重要

    集群版本不是简单的整数。您可以通过描述集群来获取当前版本。示例版本是 KTVPDKIKX0DER

    aws kafka update-cluster-kafka-version --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-kafka-version TargetVersion

    上一个命令的输出如以下 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" }
  3. 要获取 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 版本

  1. 调用 GetCompatibleKafkaVersions 操作以获取您可以将集群更新到的 Apache Kafka 版本的列表。

  2. 调用 UpdateClusterKafkaVersion 操作以将集群更新到兼容的 Apache Kafka 版本之一。