Kafka报错under-replicated partitions

2023-11-24 16:01

本文主要是介绍Kafka报错under-replicated partitions,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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.type=lz4,cleanup.policy=delete,retention.ms=172800000,message.format.version=2.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 修复方法

一般来说,我们通过下面的步骤就能恢复,

  1. 重启leader zookeeper
  2. 重启缺少对应副本集合的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。


参考文档:

  1. https://stackoverflow.com/questions/51491152/fixing-under-replicated-partitions-in-kafka
  2. https://stackoverflow.com/questions/48924122/how-to-check-which-zookeeper-instance-is-the-leader-within-an-ensemble

这篇关于Kafka报错under-replicated partitions的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/422204

相关文章

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

Java消息队列:RabbitMQ与Kafka的集成与应用

Java消息队列:RabbitMQ与Kafka的集成与应用 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在现代的分布式系统中,消息队列是实现系统间通信、解耦和提高可扩展性的重要组件。RabbitMQ和Kafka是两个广泛使用的消息队列系统,它们各有特点和优势。本文将介绍如何在Java应用中集成RabbitMQ和Kafka,并展示它们的应用场景。 消息队

Kafka (快速)安装部署

文章目录 1、软件下载&配置环境1_JDK安装2_Zookeeper安装3_Kafka安装 2、单机安装1_配置主机名和IP映射2_单机Kafka配置 3、集群安装1_配置主机名和IP的映射关系2_时钟同步3_Zookeeper配置信息4_集群Kafka配置 4、kafka的其他脚本命令 1、软件下载&配置环境 下面的操作无论是单机部署还是分布式集群环境下都是通用的。 准

Vue3上传图片报错:Current request is not a multipart request

当你看到错误 "Current request is not a multipart request" 时,这通常意味着你的服务器或后端代码期望接收一个 multipart/form-data 类型的请求,但实际上并没有收到这样的请求。在使用 <el-upload> 组件时,如果你已经设置了 http-request 属性来自定义上传行为,并且遇到了这个错误,可能是因为你在发送请求时没有正确地设置

QT 编译报错:C3861: ‘tr‘ identifier not found

问题: QT 编译报错:C3861: ‘tr’ identifier not found 原因 使用tr的地方所在的类没有继承自 QObject 类 或者在不在某一类中, 解决方案 就直接用类名引用 :QObject::tr( )

笔记本电脑开机报错故障的原因及解决办法

笔记本电脑开机报错故障是指笔记本电脑开机自检时或启动操作系统前停止启动,在显示屏 出现一些错误提示的故障。   笔记本电脑开机报错故障的原因及解决办法   造成此类故障的原因一般是笔记本电脑在启动自检时,检测到硬件设备不能正常工作或在自 检通过后从硬盘启动时,出现硬盘的分区表损坏、硬盘主引导记录损坏、硬盘分区结束标志丢失 等故障,笔记本电脑出现相应的故障提示。   维修此类故障时