网站搭建的策略与方法,榆林市网站建设,wordpress php 结构,军用棉被门网站建设1 under-replicated partitions异常原因
Kafka报错under replicated partitions意味着某些分区的副本数量未达到预期的复制因子。
主要有两种原因#xff0c; Broker故障 如果某个Kafka Broker发生故障#xff0c;导致其中一些分区的副本不再可用#xff0c;那么这些分区就…1 under-replicated partitions异常原因
Kafka报错under replicated partitions意味着某些分区的副本数量未达到预期的复制因子。
主要有两种原因 Broker故障 如果某个Kafka Broker发生故障导致其中一些分区的副本不再可用那么这些分区就会被标记为under-replicated 副本分配策略 在Kafka集群中副本分配策略replica assignment可能导致某些分区的副本分布不均衡。例如如果你添加或删除了Broker并且未正确调整副本分配策略就可能导致副本分布不均匀从而产生under-replicated partitions错误
$ ./bin/kafka-topics.sh --describe --topic recording --bootstrap-server my-bootstrap:9092
Topic: recording TopicId: lc5n53IzQJaxMRUpafyjlA PartitionCount: 199 ReplicationFactor: 3 Configs: compression.typelz4,cleanup.policydelete,retention.ms172800000,message.format.version2.8-IV1...Topic: recording Partition: 182 Leader: 2 Replicas: 2,1,0 Isr: 2,0,1Topic: recording Partition: 183 Leader: 2 Replicas: 1,2,0 Isr: 2Topic: recording Partition: 184 Leader: 0 Replicas: 0,1,2 Isr: 2,0,1上面recording下面的Partition: 183就少了两个处于同步状态的副本集合(ISR:In-Sync Replicas)因此会有under-replicated告警。
2 修复方法
一般来说我们通过下面的步骤就能恢复
重启leader zookeeper重启缺少对应副本集合的kafka
这又有另一个问题如何确定哪个zk实例是leader呢我们可以连接到zk通过命令查询。
因为我的kafka集群是通过k8s部署的因此需要进入pod查询到端口然后再执行命令
localhost $ kubectl exec -it zookeeper-0 -- /bin/sh
sh-4.4$ netstat -ntlp | grep 127.0.0.1
tcp6 0 0 127.0.0.1:12181 :::* LISTEN 78/java
sh-4.4$ echo srvr | nc localhost 12181 | grep Mode
Mode: follower可见该zk节点并不是leader, 而是follower。 参考文档
https://stackoverflow.com/questions/51491152/fixing-under-replicated-partitions-in-kafkahttps://stackoverflow.com/questions/48924122/how-to-check-which-zookeeper-instance-is-the-leader-within-an-ensemble