

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

# 版本升级的最佳实践
<a name="version-upgrades-best-practices"></a>

为了在 Kafka 版本升级过程中执行的滚动更新期间确保客户端连续性，请检查客户端和 Apache Kafka 主题的配置，如下所示：
+ 对于双可用区集群，将主题复制因子（RF）的最小值设置为 `2`，对于三可用区集群，将最小值设置为 `3`。RF 值 `2` 可能会导致修补期间出现离线分区。
+ 将最小同步副本数（minISR）的上限设置为比复制因子（RF）小 1，即 `miniISR = (RF) - 1`。这可以确保分区副本集可以容忍一个副本离线或未完全复制。
+ 将客户端配置为使用多个代理连接字符串。如果支持客户端的特定代理 I/O 开始被修补，则在客户端的连接字符串中包含多个代理可以进行故障转移。有关如何获取具有多个代理的连接字符串的信息，请参阅 [Getting the bootstrap brokers for an Amazon MSK cluster](https://docs.aws.amazon.com//msk/latest/developerguide/msk-get-bootstrap-brokers.html)。
+ 我们建议您将连接客户端升级到推荐的版本或更高版本，以便从新版本提供的功能中受益。客户端升级不受 MSK 集群的 Kafka 版本的生命周期终止（EOL）日期限制，也无需在 EOL 日期之前完成。Apache Kafka 提供了[双向客户端兼容性策略](https://kafka.apache.org/protocol#protocol_compatibility)，允许较旧客户端与较新集群配合使用，反之亦然。
+ 使用版本 3.x.x 的 Kafka 客户端可能具有以下默认值：`acks=all` 和 `enable.idempotence=true`。`acks=all` 与之前的默认值 `acks=1` 不同，它通过确保所有同步副本都确认生成请求来提供额外持久性。同样，`enable.idempotence` 的默认值以前为 `false`。将 `enable.idempotence=true` 更改为默认值可降低重复消息的可能性。这些更改被视为最佳实践设置，可能会带来少量额外延迟，但这在正常性能参数范围内。
+ 创建新的 MSK 集群时，请使用推荐的 Kafka 版本。使用推荐的 Kafka 版本可让您受益于最新的 Kafka 和 MSK 功能。