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

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

更新 Amazon MSK 集群的配置

要更新集群配置,请确保集群处于 ACTIVE 状态。您还必须确保 MSK 集群上每个代理的分区数低于 调整集群的大小:每个标准代理的分区数量 中所述的限制。如果超过这些限制,便无法更新集群的配置。

有关 MSK 配置的信息,包括如何创建自定义配置、可以更新哪些属性以及更新现有集群的配置时会发生什么情况,请参阅 亚马逊 MSK 预配置配置

配置更新期间代理的可用性

Amazon MSK 在大多数集群配置更新期间都保持高可用性。Amazon MSK 执行滚动更新,一次更新一个经纪商。在此过程中,集群仍然可用,但各个代理将在配置更新后重新启动。但是,某些配置更改可能需要同时更新所有代理,这可能会导致集群范围内的短暂中断。有关更新期间代理可用性影响的更多信息,请参阅亚马逊 MSK 预配置配置

在更新生产集群之前,我们建议您在非生产环境中测试配置更改,并在维护时段内安排更新。

如果您在升级 MSK 集群时遇到任何问题,请参阅升级 Amazon MSK 集群时如何解决问题?

使用更新集群的配置 Amazon CLI

  1. 复制以下 JSON 并将其保存到文件中。将文件命名为 configuration-info.jsonConfigurationArn替换为您要用于更新集群的配置的 Amazon 资源名称 (ARN)。在以下 JSON 中,ARN 字符串必须使用引号引起来。

    Configuration-Revision替换为您要使用的配置修订版。配置修订版本是从 1 开始的整数。在以下 JSON 中,该整数不能使用引号引起来。

    { "Arn": ConfigurationArn, "Revision": Configuration-Revision }

  2. 运行以下命令,ClusterArn替换为在创建集群时获得的 ARN。如果您没有该集群的 ARN,可以通过列出所有集群来找到它。有关更多信息,请参阅 列出 Amazon MSK 集群

    Path-to-Config-Info-File替换为配置信息文件的路径。如果您命名了在上一步中创建的文件configuration-info.json并将其保存在当前目录中,则Path-to-Config-Info-Fileconfiguration-info.json

    Current-Cluster-Version 替换为集群的当前版本。

    重要

    集群版本不是简单的整数。要查找集群的当前版本,请使用DescribeCluster操作或 desc ribe- Amazon CLI cluster 命令。示例版本是 KTVPDKIKX0DER

    aws kafka update-cluster-configuration --cluster-arn ClusterArn --configuration-info file://Path-to-Config-Info-File --current-version Current-Cluster-Version

    下面的示例说明如何使用此命令:

    aws kafka update-cluster-configuration --cluster-arn "arn:aws:kafka:us-east-1:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1" --configuration-info file://c:\users\tester\msk\configuration-info.json --current-version "K1X5R6FKA87"

    update-cluster-configuration 命令的输出如以下 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-configuration操作结果,请运行以下命令,ClusterOperationArn替换为在命令输出中获得的 ARN。update-cluster-configuration

    aws kafka describe-cluster-operation --cluster-operation-arn ClusterOperationArn

    describe-cluster-operation 命令的输出如以下 JSON 示例所示。

    { "ClusterOperationInfo": { "ClientRequestId": "982168a3-939f-11e9-8a62-538df00285db", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2019-06-20T21:08:57.735Z", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_COMPLETE", "OperationType": "UPDATE_CLUSTER_CONFIGURATION", "SourceClusterInfo": {}, "TargetClusterInfo": { "ConfigurationInfo": { "Arn": "arn:aws:kafka:us-east-1:123456789012:configuration/ExampleConfigurationName/abcdabcd-abcd-1234-abcd-abcd123e8e8e-1", "Revision": 1 } } } }

    在此输出中, OperationTypeUPDATE_CLUSTER_CONFIGURATION。如果 OperationState 的值为 UPDATE_IN_PROGRESS,请等待一段时间,然后再次运行 describe-cluster-operation 命令。

使用 API 更新 Amazon MSK 集群的配置

要使用 API 更新 Amazon MSK 集群的配置,请参阅UpdateClusterConfiguration