

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

# 使用 MSK 复制器的最佳实践
<a name="msk-replicator-best-practices"></a>

本节介绍了使用 Amazon MSK 复制器的常见最佳实践和实现策略。

**Contents**
+ [使用 Kafka 限额管理 MSK 复制器吞吐量](#msk-replicator-manage-throughput-kafka-quotas)
+ [设置集群保留期](#msk-replicator-retention-period)

## 使用 Kafka 限额管理 MSK 复制器吞吐量
<a name="msk-replicator-manage-throughput-kafka-quotas"></a>

由于 MSK 复制器充当源集群的使用器，复制可能会导致源集群上的其他使用器受到节流。节流量取决于源集群的读取容量和要复制的数据吞吐量。我们建议您为源集群和目标集群配置相同的容量，并在计算所需容量时考虑复制吞吐量。

您还可以在源集群和目标集群上为复制器设置 Kafka 限额，以控制 MSK 复制器可以使用的容量。建议使用网络带宽限额。网络带宽限额定义了一个或多个共享限额的客户端的字节速率阈值，定义为每秒字节数。此限额依不同代理而定义。

请按照以下步骤申请限额。

1. 检索源集群的引导服务器字符串。请参阅[获取 Amazon MSK 集群的引导代理](msk-get-bootstrap-brokers.md)。

1. 检索 MSK 复制器使用的服务执行角色（SER）。这是您用于 `CreateReplicator` 请求的 SER。您也可以从现有 Replicator 的 DescribeReplicator 响应中提取 SER。

1. 使用 Kafka CLI 工具，对源集群运行以下命令。

   ```
   ./kafka-configs.sh --bootstrap-server <source-cluster-bootstrap-server> --alter --add-config 'consumer_byte_
   rate=<quota_in_bytes_per_second>' --entity-type users --entity-name arn:aws:sts::<customer-account-id>:assumed-role/<ser-role-name>/<customer-account-id> --command-config <client-properties-for-iam-auth></programlisting>
   ```

1. 执行上述命令后，请确认该 `ReplicatorThroughput` 指标未超过您设置的限额。

请注意，如果您在多个 MSK 复制器之间重复使用服务执行角色，则它们都受此限额的约束。如果要为每个复制器保留单独的限额，请使用不同的服务执行角色。

有关使用带限额的 MSK IAM 身份验证的更多信息，请参阅 [Multi-tenancy Apache Kafka clusters in Amazon MSK with IAM access control and Kafka Quotas – Part 1](https://aws.amazon.com/blogs/big-data/multi-tenancy-apache-kafka-clusters-in-amazon-msk-with-iam-access-control-and-kafka-quotas-part-1/)。

**警告**  
设置极低的 consumer\$1byte\$1rate 可能会导致 MSK 复制器以意外的方式运行。

## 设置集群保留期
<a name="msk-replicator-retention-period"></a>

您可以为 MSK 预置的集群和无服务器集群设置日志保留期。默认的保留期为 7 天。请参阅[集群配置更改](msk-replicator-serverless-requirements.md#msk-replicator-config-changes)或[支持的 MSK Serverless 集群配置](msk-replicator-serverless-requirements.md)。