auto.leader.rebalance.enable 属性的建议值是多少

dsi*_*ngh 2 apache-kafka

我正在设置 kafka 集群,想知道 auto.leader.rebalance.enable 属性的建议值是多少?kafka默认值为true。可以将其保留为默认值吗?kafka默认值会导致任何问题吗?

我使用的Kafka版本是2.5.0

Man*_*qui 8

在大多数情况下,我认为将其保留为明智的做法auto.leader.rebalance.enabletrue但我想分享保持禁用它的可能原因:

我遇到了一个生产问题,新经纪人上线了。它有大量数据可以从其他经纪人/主题复制。其中一些主题的数据量较小,有些主题的数据量很大。这导致新上线的代理能够非常快地赶上较小主题的复制,并且由于auto.leader.rebalance.enable设置为true,它成为这些主题上某些分区的领导者。同时,由于代理仍在追赶具有大量数据的主题的复制,因此代理的 NIC 完全饱和,导致生产者/消费者从代理已经是领导者的那些主题/分区读取/写入超时为了。

对于我们的特定设置,我们决定最好保持auto.leader.rebalance.enable设置为,然后仅在验证它与所有必要的主题/分区同步后才false通过调用脚本来手动使代理保持平衡。kafka-preferred-replica-election.sh另一种解决方案是将设置保留auto.leader.rebalance.enabletrue,但设置leader.imbalance.check.interval.seconds为不太激进的值,以便新上线的经纪人不会太急切地被选为领导者。

作为参考,我使用的是 Kafka 2.6。

  • 是的,这与我在 Kafka 3.3.1 中的经历相呼应。也就是说,在代理重新启动期间(为了升级或更改配置,...),它将在代理恢复时尝试重新平衡分区领导者。对我来说,这体现在几个主题分区立即进入 under-min-isr 状态。在我开始之前,集群是 100% 当前且同步的,仅重新启动了 1 个代理,复制因子为 3,min.isr 为 2。leader.imbalance.check.interval.seconds 设置为 3600,但它尝试重新平衡为经纪人重新启动后。 (2认同)