我刚创建了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)
请问我该如何解决?
这个错误是你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,即可。
感谢,是
offsets.topic.replication.factor=3
引起的,我改成2就好了,谢谢大神。
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
你的答案