嗨,我遇到了一个奇怪的问题,在执行本文档中的步骤时,Kafka的复制系数增加了:https://kafka.apache.org/documentation/#basic_ops_increase_replication_factor
症状看起来复制因子增加根本不起作用。
请帮忙
我的Kafka设置是
Kafka版本:Kafka2.12-2.1.0
服务器:hostname server-0(192.168.0.1)
Kafka经纪人id:0
Kafka港:9092
zookeeper端口:2181
服务器:hostname server-1(192.168.0.2)
Kafka经纪人id:1
Kafka港:9092
服务器1上没有zookeeper
主题
主题数:1
主题名称:数据
分区数:1
首先使用服务器0中的副本因子1创建数据主题 bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic DATA
结果看起来像 bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic DATA Topic:DATA PartitionCount:1 ReplicationFactor:1 Configs: Topic: DATA Partition: 0 Leader: 0 Replicas: 0 Isr: 0
创建主题后,我生成了一些测试消息 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic DATA message 1 message 2
然后,通过仅在server-0中运行命令,主题数据的复制因子增加到2
下面的json文件与kafka-reassign-partitions.sh一起使用,以增加复制系数 { "version":1, "partitions":[ {"topic":"DATA","partition":0,"replicas":[0,1]} ] }
命令行: bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file topics-to-expand.json --execute
表面上看,通过描述主题,结果看起来不错 bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic DATA Topic:DATA PartitionCount:1 ReplicationFactor:2 Configs: Topic: DATA Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0,1
我在这里产生了更多的测试信息 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic DATA message 3 message 4
但是,当我尝试从server-1进行测试时,问题出现了
现在我通过 kill -9 [kafka-pid]
当我从server-1运行console consumer时,问题就出现了 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic DATA --from-beginning
没有消息显示,控制台只是在黑屏上阻塞。
我想根据文档,我应该能够看到消息,因为复制副本是同步的?不?
描述主题显示 bin/kafka-topics.sh --zookeeper server-0:2181 --describe --topic DATA Topic:DATA PartitionCount:1 ReplicationFactor:2 Configs: Topic: DATA Partition: 0 Leader: 1 Replicas: 0,1 Isr: 1
然后我从server-0重新启动了kafka进程,消费者控制台屏幕突然显示了历史上所有的消息 message 1 message 2 message 3 message 4
似乎server-1的使用者没有在本地使用server-1的任何数据,因为主题数据没有复制到server-1。相反,它仍然等待server-0返回来提供数据。甚至服务器1也被标记为leader。
有人能重复我的问题吗?我想附加我的财产,但我不知道如何附加文件在stackoverflow对不起,关于这个。。。
1条答案
按热度按时间gg0vcinb1#
受到这篇文章的启发,并找出了原因。
使用uu consumer\u偏移量终止节点会导致在consumer处没有消息消耗
我上述症状的原因是因为违约
offsets.topic.replication.factor=3
但是集群中只有2个代理(节点)。Kafka第一次创造__consumer_offsets
主题,它失败了offsets.topic.replication.factor=1
安静地(牦牛)。改变
offsets.topic.replication.factor=2
在属性文件中解决了上述问题(是的,经过测试!)