Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 如何平衡卡夫卡领导层?_Apache Kafka - Fatal编程技术网

Apache kafka 如何平衡卡夫卡领导层?

Apache kafka 如何平衡卡夫卡领导层?,apache-kafka,Apache Kafka,我的卡夫卡版本是kafka_2.9.2-0.8.1.1。集群中有两个代理,4个主题,每个主题有4个分区 当我跑的时候 sh kafka-topics.sh——描述——动物园管理员rhost:2181 对于所有主题/分区,我认为Broker1是领导者 如何平衡领导的负载 例如,对于主题1和主题2,将代理1作为领导者和 对于主题3和主题4,让经纪人2担任组长。您可以使用: sh kafka-preferred-replica-election.sh--zookeer-zklist 这保证了集群中代理

我的卡夫卡版本是
kafka_2.9.2-0.8.1.1
。集群中有两个代理,4个主题,每个主题有4个分区

当我跑的时候

sh kafka-topics.sh——描述——动物园管理员rhost:2181

对于所有主题/分区,我认为Broker1是领导者

如何平衡领导的负载

例如,对于主题1和主题2,将代理1作为领导者和 对于主题3和主题4,让经纪人2担任组长。

您可以使用:

sh kafka-preferred-replica-election.sh--zookeer-zklist


这保证了集群中代理的领导负载均衡

经纪人有一个可以在
server.properties
文件中设置的属性,该属性将启用领导力的自动重新平衡。默认情况下,它未启用。向每个代理添加以下代码行并重新启动kafka


auto.leader.rebalance.enable=true

我知道现在有点晚了,也许你已经有了答案,但是为了平衡leader,首先你需要让代理在所有分区之间都具有同等的优先权,对于一个代理来说,它是一个优先权,它有两个标准首先它需要是同步副本,第二,它必须是副本列表(IMO)上的第一个元素,因此如果您有足够少的主题/分区,那么手动执行将更容易,否则您需要重新分配分区,并在所有代理之间分发第一个元素(首选副本),然后启动首选领导人选举工具,该工具将确保首选领导人实际上是领导人。

分区应自动重新平衡,因为代理配置参数
auto.leader.rebalance.enable的默认值为
true
。(见附件)


但是,默认情况下,此重新平衡每5分钟发生一次,由
leader.disbalance.check.interval.seconds
参数定义。如果希望更频繁地发生这种情况,则必须修改此参数。

,我已启用此“auto.leader.rebalance.enable=true”,但它不起作用。将2 kafka与brokerId 0和1一起使用。如果代理0停止,则代理1不充当负载平衡。我得到的错误是“java.net.ConnectException:连接被拒绝”根据当前文档,
auto.leader.rebalance.enable
值默认为true,而不是false。只有v0.8建议将其设置为true,0.10及以上版本默认设置为true。请参阅v0.8文档中的平衡领导:无论哪种方式,当您描述一个主题时:领导者“X”和列表中具有首选副本顺序的第一个副本(Y、Z、X)对于所有分区都应相同,以便进行正确的领导者选举,有时这可能会丢失,有时,对于许多分区,同一节点可能是领导者-即。,ISR中的领导者也可能不平衡。您始终可以运行首选副本选择脚本来解决此问题。