

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 MSK Replicator 的最佳實務
<a name="msk-replicator-best-practices"></a>

本節涵蓋使用 Amazon MSK Replicator 的常見最佳實務和實作策略。

**Contents**
+ [使用 Kafka 配額管理 MSK Replicator 輸送量](#msk-replicator-manage-throughput-kafka-quotas)
+ [設定叢集保留期間](#msk-replicator-retention-period)

## 使用 Kafka 配額管理 MSK Replicator 輸送量
<a name="msk-replicator-manage-throughput-kafka-quotas"></a>

由於 MSK Replicator 可作為來源叢集的取用者，因此複寫可能會導致來源叢集上的其他取用者受到限流。限流量取決於您在來源叢集上擁有的讀取容量，以及要複寫的資料輸送量。我們建議您為來源和目標叢集佈建相同的容量，並在計算您需要的容量時考慮複寫輸送量。

您也可以在來源和目標叢集上的設定複寫器的 Kafka 配額，以控制 MSK Replicator 可以使用的容量。建議使用網路頻寬配額。網路頻寬配額會針對一個或多個共用配額的用戶端，定義的位元組率閾值 (定義為每秒位元組數)。此配額是根據每個代理程式而定義。

請依照下列步驟套用配額。

1. 擷取來源叢集的引導伺服器字串。請參閱 [取得 Amazon MSK 叢集的引導代理程式](msk-get-bootstrap-brokers.md)。

1. 擷取 MSK Replicator 使用的服務執行角色 (SER)。這是您用於 `CreateReplicator` 請求的 SER。您也可以從現有複寫器的 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 Replicator 之間重複使用同一個服務執行角色，則它們皆會受到此配額的限制。如果您想要維護每個複寫器的個別配額，請使用個別的服務執行角色。

如需有關將 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 Replicator 以非預期的方式運作。

## 設定叢集保留期間
<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)。