

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

# 更新 Amazon MSK 集群代理大小
<a name="msk-update-broker-type"></a>

您可以通过更改代理的大小来按需扩展 MSK 集群，不必重新分配 Apache Kafka 分区。通过更改代理的大小，您可以根据工作负载的变化灵活地调整 MSK 集群的计算容量，不会中断集群 I/O。Amazon MSK 对指定集群中的所有代理使用相同的代理大小。

对于标准代理，您可以将集群代理大小从 M5 或 T3 更新为 M7g，从 T3 更新为 M5，或者从 M7g 更新为 M5。

**注意**  
您无法从较大的代理大小迁移至较小的代理大小。例如，从 M7g.large 迁移至 T3.small。

对于快速代理，只能使用 M7g 代理大小。

本主题介绍了如何更新 MSK 集群的代理大小。

请注意，迁移到较小的代理大小可能会降低性能并减少每个代理可实现的最大吞吐量。迁移到更大的代理大小可以提高性能，但成本可能会更高。

当集群启动并运行后，将以滚动方式更新代理大小。这意味着 Amazon MSK 一次关闭一个代理来更新代理大小。有关如何在代理大小更新期间使集群高度可用的信息，请参阅[构建高度可用的集群](bestpractices.md#ensure-high-availability)。为了进一步降低对生产力的任何潜在影响，您可以在流量较低的时期更新代理大小。

代理大小更新期间，您可以继续生成和使用数据。不过，您必须等到更新完成，才能重启代理或调用 [Amazon MSK operations](https://docs.aws.amazon.com/msk/1.0/apireference/operations.html) 下列出的任何更新操作。

如果想将集群更新为较小的代理大小，建议您先在测试集群上尝试更新，了解会对场景产生的影响。

**重要**  
如果每个代理的分区数超过 [调整集群的大小：每个标准代理的分区数量](bestpractices.md#partitions-per-broker) 中指定的最大数量，则无法将集群更新为较小的代理大小。

**Topics**
+ [使用更新 Amazon MSK 集群代理的大小 AWS 管理控制台](#update-broker-type-console)
+ [使用更新 Amazon MSK 集群代理的大小 AWS CLI](#update-broker-type-cli)
+ [使用 API 更新代理大小](#update-broker-type-api)

## 使用更新 Amazon MSK 集群代理的大小 AWS 管理控制台
<a name="update-broker-type-console"></a>

此过程说明如何使用更新 Amazon MSK 集群代理大小 AWS 管理控制台

1. 登录并在[https://console.aws.amazon.com/msk/家中打开 Amazon MSK 控制台？ AWS 管理控制台 region=us](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/)-east-1\#/home/。

1. 选择要更新代理大小的 MSK 集群。

1. 在集群的详细信息页面上，找到**代理摘要**部分，然后选择**编辑代理大小**。

1. 从列表中选择所需的代理大小。

1. 保存更改。

## 使用更新 Amazon MSK 集群代理的大小 AWS CLI
<a name="update-broker-type-cli"></a>

运行以下命令，并将 {{ClusterArn}} 替换为创建集群时所获取的 Amazon 资源名称（ARN）。如果您没有该集群的 ARN，可以通过列出所有集群来找到它。有关更多信息，请参阅 [列出 Amazon MSK 集群](msk-list-clusters.md)。

1. {{Current-Cluster-Version}}替换为集群的当前版本和{{TargetType}}您希望代理的新大小。要了解有关代理大小的更多信息，请参阅[Amazon MSK 代理类型](broker-instance-types.md)。

   ```
   aws kafka update-broker-type --cluster-arn {{ClusterArn}} --current-version {{Current-Cluster-Version}} --target-instance-type {{TargetType}}
   ```

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

   ```
   aws kafka update-broker-type --cluster-arn "arn:aws:kafka:us-east-1:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1" --current-version "K1X5R6FKA87" --target-instance-type kafka.m5.large 
   ```

   该 命令的输出如以下 JSON 示例所示。

   ```
   {
       "ClusterArn": "arn:aws:kafka:us-east-1:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1",
       "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef"
   }
   ```

1. 要获得`update-broker-type`操作结果，请运行以下命令，{{ClusterOperationArn}}替换为在命令输出中获得的 ARN。`update-broker-type`

   ```
   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:0123456789012:cluster/exampleName/abcd1234-0123-abcd-5678-1234abcd-1",
       "CreationTime": "2021-01-09T02:24:22.198000+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_COMPLETE",
       "OperationType": "UPDATE_BROKER_TYPE",
       "SourceClusterInfo": {
         "InstanceType": "t3.small"
       },
       "TargetClusterInfo": {
         "InstanceType": "m5.large"
       }
     }
   }
   ```

   如果 `OperationState` 的值为 `UPDATE_IN_PROGRESS`，请等待一段时间，然后再次运行 `describe-cluster-operation` 命令。

## 使用 API 更新代理大小
<a name="update-broker-type-api"></a>

要使用 API 更新经纪商规模，请参阅[UpdateBrokerType](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-nodes-type.html#UpdateBrokerType)。

您可以使用 `UpdateBrokerType` 将集群代理大小从 M5 或 T3 更新为 M7g，或者从 M7g 更新为 M5。