kafka报Replication factor: 3 larger than available brokers: 2.

识趣 发表于: 2021-09-27   最后更新时间: 2021-09-27 23:11:33   3,943 游览

我刚创建了kafka集群,然后用命令生产和消费的时候,一只没有反应,我执行的命令是:

# 生产者
kafka-console-producer.sh --broker-list $(hostname -i):9092 --topic test

# 另一个终端,开启消费者
kafka-console-consumer.sh --bootstrap-server $(hostname -i):9092 --topic test --from-beginning

我查看kafka节点日志,发现以下错误:

org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 2.

[2021-09-27 10:21:59,393] INFO [Admin Manager on Broker 1]: Error processing create topic request CreatableTopic(name='__consumer_offsets', numPartitions=50, replicationFactor=3, assignments=[], configs=[CreateableTopicConfig(name='compression.type', value='producer'), CreateableTopicConfig(name='cleanup.policy', value='compact'), CreateableTopicConfig(name='segment.bytes', value='104857600')]) (kafka.server.ZkAdminManager)

请问我该如何解决?

发表于 2021-09-27

这个错误是你topic副本要求是3个,但是实际上只有2个节点,不满足3个,所以你必须要有3个kafka节点存活。

这个错误一般只会在第一次创建topic的时候出现,所以你的topic并未创建。

可以通过以下命令判断是否是某个kafka节点出了问题,导致存活少于3个了。

## 查询集群描述(新)
bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic foo --describe

如果你的节点数本身就少于3个,这个错误则是kafka节点中server.properteis设置的默认配置引起的:

offsets.topic.replication.factor=2
default.replication.factor=2

将这2个默认设置小于3,即可。

识趣 -> 半兽人 3年前

感谢,是

offsets.topic.replication.factor=3

引起的,我改成2就好了,谢谢大神。

smile-hu -> 半兽人 3年前

offsets.topic.replication.factor这个配置在原本的server.properties里有,但是这个没有:

default.replication.factor

我最终加了这三个 解决了

offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
你的答案

查看kafka相关的其他问题或提一个您自己的问题