我正在设置 kafka 集群,想知道 auto.leader.rebalance.enable 属性的建议值是多少?kafka默认值为true。可以将其保留为默认值吗?kafka默认值会导致任何问题吗?
我使用的Kafka版本是2.5.0
在大多数情况下,我认为将其保留为明智的做法auto.leader.rebalance.enable,true但我想分享保持禁用它的可能原因:
我遇到了一个生产问题,新经纪人上线了。它有大量数据可以从其他经纪人/主题复制。其中一些主题的数据量较小,有些主题的数据量很大。这导致新上线的代理能够非常快地赶上较小主题的复制,并且由于auto.leader.rebalance.enable设置为true,它成为这些主题上某些分区的领导者。同时,由于代理仍在追赶具有大量数据的主题的复制,因此代理的 NIC 完全饱和,导致生产者/消费者从代理已经是领导者的那些主题/分区读取/写入超时为了。
对于我们的特定设置,我们决定最好保持auto.leader.rebalance.enable设置为,然后仅在验证它与所有必要的主题/分区同步后才false通过调用脚本来手动使代理保持平衡。kafka-preferred-replica-election.sh另一种解决方案是将设置保留auto.leader.rebalance.enable为true,但设置leader.imbalance.check.interval.seconds为不太激进的值,以便新上线的经纪人不会太急切地被选为领导者。
作为参考,我使用的是 Kafka 2.6。