文档章节

kafka broker重启之后只能写不可读的案例

化暗影
 化暗影
发布于 2017/06/09 09:59
字数 373
阅读 217
收藏 1

问题现象

最近发现一个问题,Kafka 0.9(含)以上版本Broker在运行长一段时候,经过重启,会有很长一段时间(30min)不能正常对外提供服务。 现象:consumer的OffsetCommit、JoinGroup、LeaveGroup、SyncGroup、Heartbeat等API会一直出现NOT_COORDINATOR_FOR_GROUP(16, new NotCoordinatorForGroupException("This is not the correct coordinator for this group."))(KAFKA ERROR CODE 16, 不同语言的Client可能字符串不大相同,但是错误code一定相同),持续很长时候后(30min)后自动恢复正常。

原因

Kafka 0.9后使用了一个内部topic __consumer_offsets 作为consumer的元数据(group coordinator、commited-offset等)的存储介质,这些元数据0.8时是存储在zookeeper上的。经常长时间的线上运行__consumer_offsets的partition的磁盘占用会持续增大,造成重启时,需要经过很长时间去加载__consumer_offsets内的数据,导致在这段加载时间内,该broker不能正常对外提供服务,造成consumer client持续报错。加载__consumer_offsets的日志在kafka的server.log中。 image001.png

解决:

需要开启log.cleaner功能,删掉过期堆积的log数据。 修改配置文件,重启broker: log.cleaner.enable=true log.cleanup.policy= delete 在0.8版本中的配置文件中的默认值是log.cleaner.enable=false,我们错误地将0.8配置文件中的这项拷贝到0.9的Kafka后造成了以上问题。

相关参考:

https://issues.apache.org/jira/browse/KAFKA-3000 https://issues.apache.org/jira/browse/KAFKA-2988 https://mail-archives.apache.org/mod_mbox/kafka-users/201603.mbox/%3CCAHXdron8fePyDwyk-YnmcSz1zDO9qFDRJgLa1x8rxHwz2PTzow@mail.gmail.com%3E

© 著作权归作者所有

化暗影
粉丝 0
博文 10
码字总数 3452
作品 0
海淀
私信 提问
Kafka竟然不支持读写分离!今天才知道!

Kafka竟然不支持读写分离!今天才知道! 在 Kafka 中,生产者写入消息、消费者读取消息的操作都是与 leader 副本进行交互的,从 而实现的是一种主写主读的生产消费模型。数据库、Redis 等都具...

架构师springboot
04/26
20
0
浅谈开源Kafka与腾讯云cKafka

今天下午参加了腾讯云+社区组织的kafka公开课,收获良多。正巧在工作中也遇到过kafka的问题,今天听完之后产生了非常多的感想。无奈篇幅有限,本人又文笔愚钝,所以今天的分享主要提及对我感...

老张的技术
2018/06/19
0
0
Kafka冷门知识——主题删除背后的秘密

版权声明:本文为博主原创文章,未经博主朱小厮允许不得转载。 https://blog.csdn.net/u013256816/article/details/84581232 在本文开篇中先让大家来思考一个问题,这个问题也是来源于一次真...

朱小厮
2018/11/28
0
0
很到位!原来这才是Kafka的“真面目”

简介 kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作...

大数据之路
2013/01/22
4.9K
3
震惊了,原来这才是Kafka的“真面目”!

Kafka 对外使用 Topic 的概念,生产者往 Topic 里写消息,消费者从中读消息。 为了做到水平扩展,一个 Topic 实际是由多个 Partition 组成的,遇到瓶颈时,可以通过增加 Partition 的数量来进...

51CTO技术栈
04/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
6
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部