为啥阿里总喜欢问 Kafka,还给了68万年薪?

 

就是这么拽!...



平时的大数据架构师岗位面试中,想知道我怎么安排的嘛?

我总会在 Kafka 这块,埋上无数的坑,独门狠招之一,常常死伤无数,我每次都这么问,屡试不爽!

一般来讲,常见的面试题有以下几种:

1. Kafka 为什么这么快?

2. 如何对 Kafka 集群进行调优?

3. Kafka 的高性能网络架构是如何设计的?

4. Kafka 集群资源如何评估?

大多数人遇到这样的问题,不假思索就快速给出了下面的答案:

1.  Kafka 是基于磁盘顺序写的设计。

2. 将 Kafka 的副本因子调大,提高数据的安全性,把生产者程序的 ack 调整为0,提高数据写入的效率等。

3. Kafka 的高性能网络架构设计方案包含批处理,高效的序列化方式。

4. Kafka 的集群资源评估主要看 topic 的数量以及每个 topic 的数据量规模。

扫码,听下我分析讲解的视频
听我讲完之后,你就懂了,其实都是坑


上面那看似“突出要点式”的简短回答,其实正好不知不觉陷入了几个雷区,我们来分析一下这几个回答究竟踩中了哪些“”?

1. 回答太过于简洁,而且不完整,明显感觉不全面,欠思考。

2. 回答不够全面,调优一般基于某种业务场景给出最佳方案,毕竟脱离了业务场景而干谈技术和参数调优,那就是耍流氓呀。

3. Kafka 的网络架构设计,应该从已有方案的痛点,其他类似组件的成功设计方案进行设计参考,这样会显得系统全面。

4. 集群资源评估,除了数据规模一样,也还要考虑副本,考虑压缩,考虑生命周期。

那么,避免踩坑,应该怎么回答面试官的问题呢?别着急,我来先给大家做个正确示范。

问题:Kafka 为什么那么快?

示范如下:

首先,Kafka 通过把 message 顺序写入磁盘来提高写入和读取效率。

其次,kafka 利用操作系统的页存储来提高写入效率

再次,Kafka 也通过 zero copy 技术来提高了数据的写入效率。

最后,Kafka 的 message 传输支持压缩技术。

总结一下:Kafka 速度的秘诀在于,它把所有的消息都变成一个批量的文件,并且进行合理的批量压缩,减少网络 IO 损耗,通过 mmap 提高 IO 速度,写入数据的时候由于单个 partition 是末尾添加所以速度最优;读取数据的时候配合 sendfile 直接暴力输出。

你看,这样的回答,是不是就更全面了?挑不出毛病的满分答案是完全能让面试官眼前一亮的,这样就离接到 offer 大大地迈进了一步。

其实,大多数人掌握了一定的面试技巧会有一些小幅度提升。不可忽视的是,容易踩坑,其实是缺乏“系统性的知识讲解”和“真实案例的实操经验”!这是绝大多数人真正的痛点。

再送大家一套 免费 干货满满的视频教程!!



这是我上周刚刚参加过的奈学教育— Kafka进阶训练营,当时报名人数高达12621+人次,现在奈学已经将录播课程资料全部打包,价值 2699 元的 Kafka 源码剖析课,现免费赠送!这波羊毛,不薅白不薅,相信你跟我一样,听完干货满满的内容绝对会从容应对面试官的灵魂拷问,让你轻松玩转 Kafka 底层原理!
扫码领吧!趁现在免费


再领一套干货满满的视频
阅读原文,领零更多资料!


    关注 程序猿


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册