![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f49a8f7e04970c3ccba5615c9d16a8a8.png)
1.概述
转载:https://blog.csdn.net/u013933879/article/details/90055546
参考:Kafka无法消费!?究竟是bug的“沦陷”还是配置的“扭曲”?
2. 问题现象
在只有一个副本时,出现了broker节点丢失,因此导致了leader -1的情况
3.解决方案
直接修改zookeeper中该分区对应的state
set /brokers/topics/test_add_replication/partitions/1/state {"controller_epoch":140,"leader":1002,"version":1,"leader_epoch":12,"isr":[1002]}
稍等片刻,重新查看topic状态,即可发现leader已变更为1002
4.题外话
查看toipic状态命令
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic test_add_rep
lication
查看kafka集群brokers命令
zookeeper/bin/zkCli.sh
ls /brokers/ids
修改topic的副本数量
PS:非常不建议只有1个副本
创建一个json文件,内容如下:
{
"version": 1,
"partitions": [
{
"topic": "test_add_replication",
"partition": 0,
"replicas": [
1002,
1004,
1001
]
},
{
"topic": "test_add_replication",
"partition": 1,
"replicas": [
1002,
1004,
1001
]
},
{
"topic": "test_add_replication",
"partition": 2,
"replicas": [
1002,
1004,
1001
]
},
{
"topic": "test_add_replication",
"partition": 3,
"replicas": [
1002,
1004,
1001
]
},
{
"topic": "test_add_replication",
"partition": 4,
"replicas": [
1002,
1004,
1001
]
}
]
}
执行修改命令
./kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-jso
n-file /tmp/rep.json --execute
修改完成后稍等片刻即可生效
5.威胁案例
【kafka】flink kafka NullPointerException Timeout position partition could be determined