layout: post title: "关于 Kafka 的一些面试题目" categories: Kafka tags: interview 面试题目
问这个问题主要是想知道面试者对 Kafka 的整体认识如何,能够大致了解清楚面试者对 Kafka 的相关概念的熟悉程度,比如消息、topic、partition、replica、offset、重平衡、leader/follower、ISR 等等。
多分区、batch send、kafka Reator 网络模型、pagecache、sendfile 零拷贝、数据压缩。
sender 线程工作机制、ByteBuffer 缓冲区的作用等等:
生产端调整 batch.size、linger.ms 参数,以及主题分区数合理分配等。
理解消息交付语义:
最多一次(atmostonce):消息可能丢失也可能被处理,但最多只会被处理一次;
至少一次(atleastonce):消息不会丢失,但可能被处理多次;
精确一次(exactlyonce):消息被处理且只会被处理一次。
假若消费者在消费前提交位移,那么就是“最多一次”,若在消费后提交位移,那么就是“最少一次”,如果能够保证消费和提交位移同在一个事务中执行,就可保证“精确一次”。__consumer_offsets
的一些理解。
消费组成员变更、主题数量变更、订阅信息变更;session.timeout.ms、max.poll.interval.ms、hearbeat.interval.ms;
相关文章:Kafka重平衡机制
RAR、OAR、AR、RAR-OAR、OAR-RAR 相关概念,
相关文章:记一次 Kafka 线上扩容、Kafka 分区重分配源码分析
在 broker 挂掉之后,分区 leader 会变更,久而久之就会变得不均衡,Kafka 默认序号最小的副本为 Preferred leader,在 broker 重启回来后,Kafka 会重新调整分区的 Preferred leader 成为 leader,Preferred leader 选举分为手动选举和自动选举,涉及参数 auto.leader.rebalance.enable,还有个默认允许 10% 不均衡策略等等。
相关文章:Kafka ISR 副本同步机制
相关文章:图解:Kafka 水印备份机制
相关文章:图解:Kafka 水印备份机制
更新集群元数据信息、创建主题、删除主题、分区重分配、preferred leader 副本选举、主题分区扩展、broker 加入集群、broker 崩溃、受控关闭、controller leader 选举。
每个分区拥有单独的日志(partition log)、顺序写、到一定大小分成日志段文件(log segment file)、每个 log 文件对应一个索引文件(.index .timeindex)等等。
我的理解: