关于kafka的面经问题
面了一个月很累,主要还是自己是边面边开始准备(三月之前一直没刷过题,也没准备面试什么的,惭愧),这里分享下自己在阿里面试中关于kafka的面试题目,我觉得从中学到了很多。
kafka的应用场景和优势(入场券)
解耦,高吞吐(以及如何保证高吞吐)kafka如何做到发送端和接收端的顺序一致性?
发送端只保证了partition级别的顺序一致性,不保证topic级别的顺序。可以指定key值让相同key的数据到同一个partition保证顺序一致性。
消费端使用offset保证读入数据的一致性。零拷贝的实现原理,省略了哪一次上下文切换
这个也是netty经常会问到的问题,建议可以认真准备这个答案。kafka如何保证分区容错性
副本机制(replica-factor),使用zk做协调。(我也扯了扯ack机制)聊一聊 最多/最少/恰好消费一次
这算是基础了,可惜当时没准备。kafka的日志存储机制(/index下的文件结构),如何使用时间戳索引日志
/index文件中会生成三份文件XX.log,XX.index,XX.timeindex,日志是分块存储的,时间戳索引从XX.timeindex中找到对应的offset,再从XX.index中索引XX.log。(学到了)kafka-stream相比其他流数据框架的对比,聊一聊流数据中的窗口和水印
这里主要是我CV上写了kafka-stream,只了解kafka的没必要了解。
面的不是中间件岗,所以面试官可能也没问太多MQ特别底层的知识,但自己还是没准备充分(主要还是得先准备从零刷力扣),最后分享一个面试中我觉得很有意思的算法题。
- 一个系统上游有五个节点,每个节点每秒产生一句话,下游只有一个节点做word count。让你设计这个系统的实现思路。(假设wc表的合并很耗时)