前阵子跟面试官朋友聊天,说到世界 500 强中主流的互联网公司,几乎都在用 Kafka。同样,大厂面试时,也八成会提问 Kafka 实战、源码相关的问题,而且不仅要求候选人能深入理解 Kafka 底层实现原理,还得具备解决常见问题的能力。
不得不感叹,熟练使用 Kafka,已经是 Java 开发、大数据开发者的必备杀手锏之一。
Kafka 确实牛。作为一个高度可扩展的消息系统,因其可水平扩展和高吞吐率而被广泛使用。在实际业务系统中的应用更为广阔,可谓是一套框架,打通多个关键点。
我身边越来越多的工程师,把 Kafka 加入到自己的学习列表里。如果你能够深入进去,把 Kafka 的原理搞懂,再或者进一步,能够给 Kafka 贡献源代码,那这绝对是你简历里亮眼的一笔。
如何系统学习 Kafka ?
但想学透 Kafka,我个人建议,千万不要直接扎到具体的细节中,最好先搭建一个技术栈完整的知识框架。沿着「核心技术 → 实战 → 源码」的路径,建立全局认知。在这,跟你分享 2 张我死磕 Kafka 时,收藏的「Kafka 双全景图」????
第一张图来自专栏《Kafka 核心技术与实战》,总结了一条高效的 Kafka 实战学习路径,把 Kafka 集群环境的监控和管理、内容原理剖析,以及消息系统常见疑难问题,都讲得清晰透彻。我最大的收获,就是对 Kafka 的原理、机制以及参数的理解更深入了。
专栏把官方文档中,上百个参数精简成十几个重要的参数,非常实用。最近 2 刷,又有新的心得和体会,毫不夸张的说,跟着学下来,能全面提升你的 Kafka 实战能力。
第二张来自《Kafka核心源码解读》,核心是用最高效的方式,读最核心的源码。带你深入理解 Kafka 的底层原理,提升系统架构能力和编码功力,并且借助源码快速定位线上问题并制定调优方案。难得的是,作者还分析了不少 Kafka 经典的高频面试题,以及实用的避坑指南,为你的大厂面试添砖加瓦。
其实,现在很多大厂在招聘资深技术岗时,常常会要求应聘者“至少读过一种开源框架的源码”。这意味着,阅读源码正在从“加分项”向“必选项”转变。
两个专栏的作者都是「胡夕」,在 Kafka 领域,他相当有发言权了。他是老虎证券用户增长团队负责人,也是 Apache Kafka 的一名活跃代码贡献者。