为什么Kafka的消费者补偿主题没有传播到所有的经纪人?

lf3rwulv  于 2021-06-06  发布在  Kafka
关注(0)|答案(3)|浏览(324)

我有一个3zk节点集群。和7个Kafka代理节点。
因此,当我创建任何主题时,我可以使用命令行参数设置复制因子和分区数。
这些分区分布到所有7个代理。 __consumer_offsets ,它是自动创建的,并且仅扩展到具有1个复制的1个代理(id=0)。
我知道我可以更改配置文件中复制因子的默认编号。
但是,此主题仅复制到一个代理。那么,可以更改哪些参数来将分区复制到所有代理。

jljoyd4f

jljoyd4f1#

您将需要使用Kafka分区重新分配。不幸的是,目前这是一个半手动过程:https://kafka.apache.org/documentation/#basic_ops_cluster_expansion

mwkjh3gx

mwkjh3gx2#

我觉得很奇怪。我部署了一个3Kafka经纪人集群和我的 __consumer_offsets 主题有50个分区(默认)在3个代理之间拆分,并有3个(默认)作为副本。当您从一个kafka代理开始,创建用于阅读主题的消费者,以便 __consumer_offsets 是自动创建的,它将仅位于代理0(唯一一个)上。在那之后,你添加了新的Kafka经纪人:不做任何事情 __consumer_offsets 仍将留在broker 0上;您需要使用kafka手动重新分配分区来完成上述操作。

vd8tlhqk

vd8tlhqk3#

你需要设置“ offsets.topic.replication.factor “到代理配置中所需的副本数。 offsets.topic.replication.factor -“偏移量主题的复制因子(设置得更高以确保可用性)。在群集大小满足此复制因子要求之前,内部主题创建将失败。“
参考-http://kafka.apache.org/documentation/#brokerconfigs

相关问题