Kafka ISR 收缩不扩展

Kafka ISR Shrinked and doesn't Expand

我有一个包含 3 个节点的 Kafka 集群,每个节点有 1 个 ZK 和 1 个 Broker。

Kafka version 0.10.1.1.

每个主题有 replication-factor=3min.insync.replicas=2。此后,我们通过发出 --describe 进行检查,主题已成功创建且 replication-factorISR.

一段时间后我可以看到一些主题将他们的 ISR 缩小为一个领导者。

/opt/kafka/bin/kafka-topics.sh --describe --zookeeper zk1:2181,zk2:2181,zk3:2181 --topic topic1
Topic:topic1  PartitionCount:1        ReplicationFactor:1     Configs:
        Topic: topic1 Partition: 0    Leader: 1       Replicas: 1     Isr: 1

/opt/kafka/bin/kafka-topics.sh --describe --zookeeper zk1:2181,zk2:2181,zk3:2181 --topic topic2
Topic:topic2  PartitionCount:1        ReplicationFactor:1     Configs:
        Topic: topic2 Partition: 0    Leader: 1       Replicas: 1     Isr: 1

当我连接到 zk Shell 时。我可以看到所有节点都已启动并且 controllerbroker:2

/opt/kafka/bin/zookeeper-shell.sh --describe --zookeeper zk1:2181,zk2:2181,zk3:2181
ls /brokers/ids
[0,1,2]

get /controller
{"version":1,"brokerid":2,"timestamp":"1531740996571"}

即使我尝试重新启动 Brokers(仅 brokers 或与 zookeepers 一起),主题也不会扩展。

非常感谢任何建议!

查看主题的描述,这些主题似乎是使用 1 的复制因子创建的:

ReplicationFactor:1

在代理配置中设置 default.replication.factor=2min.insync.replicas=2 不会阻止创建复制因子为 1 的主题。

要解决此问题,您可以使用 kafka-reassign-partitions.sh 工具 increase the replication factor 这些主题。

为防止这种情况发生,您可以使用 Create Topic and Alter Config 策略来拒绝具有无效复制因子的主题。