本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
版本升级的最佳实践
为了在 Kafka 版本升级过程中执行的滚动更新期间确保客户端连续性,请检查客户端和 Apache Kafka 主题的配置,如下所示:
对于双可用区集群,将主题复制因子(RF)的最小值设置为
2
,对于三可用区集群,将最小值设置为3
。RF 值2
可能会导致修补期间出现离线分区。将同步副本的最小值 (minISR) 设置为最大值,
RF - 1
以确保分区副本集可以容忍一个副本离线或复制不足。将客户端配置为使用多个代理连接字符串。如果客户端的连接字符串中包含多个代理,则当支持客户端 I/O 的特定代理开始修补时,可以实现失效转移。有关如何获取多个代理的连接字符串的信息,请参阅获取 Amazon MSK 集群的引导程序代理。
我们建议您将连接客户端升级到推荐的版本或更高版本,以便从新版本提供的功能中受益。客户端升级不受MSK集群 Kafka 版本生命周期终止 (EOL) 日期的约束,也不需要在该EOL日期之前完成。Apache Kafka 提供了双向客户端兼容性策略
,允许较旧客户端与较新集群配合使用,反之亦然。 使用版本 3.x.x 的 Kafka 客户端可能具有以下默认值:
acks=all
和enable.idempotence=true
。acks=all
与之前的默认值acks=1
不同,它通过确保所有同步副本都确认生成请求来提供额外持久性。同样,enable.idempotence
的默认值以前为false
。将enable.idempotence=true
更改为默认值可降低重复消息的可能性。这些更改被视为最佳实践设置,可能会带来少量额外延迟,但这在正常性能参数范围内。创建新MSK集群时,请使用推荐的 Kafka 版本。使用推荐的 Kafka 版本可以让你受益于最新的 Kafka 和MSK功能。