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

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

更新 Apache Kafka 版本

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

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

使用更新 Apache Kafka 版本 Amazon Web Services Management Console
  1. 打开 Amazon MSK 控制台,网址为https://console.amazonaws.cn/msk/

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

  3. 属性选项卡上,在 Apache Kafka 版本部分中选择升级

使用更新 Apache Kafka 版本 Amazon CLI
  1. 运行以下命令,ClusterArn替换为您在创建集群时获得的 Amazon 资源名称 (ARN)。如果您的集群没有,则可以通过列出所有集群来找到它。ARN有关更多信息,请参阅 列出亚马逊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有关更多信息,请参阅 列出亚马逊MSK集群

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

    重要

    集群版本不是简单的整数。要查找集群的当前版本,请使用DescribeCluster操作或 desc ribe- Amazon CLI cluster 命令。示例版本是 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替换为ARN在命令输出中获得的update-cluster-kafka-version命令。

    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 版本
  1. 调用该GetCompatibleKafkaVersions操作以获取您可以将集群更新到的 Apache Kafka 版本列表。

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