为什么 kafka 中的 __consumer_offsets 主题没有传播到所有经纪人?

Raj*_*gir 6 apache-kafka

我有一个3 zk节点集群。和7 个 kafka 代理节点。

因此,当我创建任何主题时,我可以使用命令行参数设置副本因子和分区数。

并且这些分区传播到所有 7__consumer_offsets个代理。但是有一个主题,即它是自动创建的,并且它只传播到 1 个代理(id=0)和 1 个复制。

我知道我可以更改配置文件中复制因子的默认编号。

但是,此主题仅复制到一个代理。那么可以更改哪些参数以将分区复制到所有代理。

ppa*_*rno 8

这对我来说真的很奇怪。我部署了 3 个 Kafka 代理集群,我的__consumer_offsets主题有 50 个分区(默认),分布在 3 个代理上,并有 3 个(默认)作为副本。当您从单个 Kafka 代理开始时,您所描述的可能会发生,创建用于阅读主题的消费者,以便__consumer_offsets自动创建,并且它将仅在代理 0(唯一的)上。之后,您添加新的 Kafka 代理:不做任何事情__consumer_offsets仍将保留在代理 0 上;如上所述,您需要使用 Kafka 手动重新分配分区。


Lij*_*ohn 2

您需要offsets.topic.replication.factor在代理配置中将“”设置为所需的副本数量。

偏移主题的复制因子(设置较高以确保可用性)。为了确保 offsets 主题的有效复制因子是配置的值,活动代理的数量必须至少是第一次请求 offsets 主题时的复制因子。如果不是,偏移量主题创建将失败,或者它将获得 min 的复制因子(活动代理,配置的复制因子)

默认值:3
重要性:高

参考 - http://kafka.apache.org/documentation/#brokerconfigs