前言
其实从事程序员这么些年来,一直有一个愿望想写本书,但是一直没实现,一开始是想着是因为自己没时间,后来想想也不是没时间,可能还是感觉水平有限。为了给写书做准备,最近打算写一个专栏,专栏的要求就稍微低一些,能坚持写完的概率也就会大一些。所以最近挑了从Kafka的源码角度去写一个专栏。
选择写Kafka源码剖析的理由
1)Kafka是大数据里面难度较大,而且使用广泛的一个技术,倒不是说使用起来难度大,而是说使用过程中容易出问题,但是生产又对其稳定性要求高。通过剖析其里面的源码可以帮助大家深刻理解Kafka的原理,便于大家去解决生产中的问题。
2)Kafka的源码的质量是我看过的大数据的开源产品里面质量最好的,其代码质量远超于hadoop,Spark等产品,整体代码阅读起来难度也不大,而且清晰,最关键的是在里面可以学到较多的架构的知识,这些知识在一般的架构课里面是学不到的。还可以偷偷的告诉大家,里面的有些代码漂亮的代码,可以直接复制粘贴到你的项目里。
学Kafka的源码需要储备哪些知识?
1)熟悉java的IO,线程,并发方面的知识
2)要会NIO方面的知识,因为Kafka的网络就是使用的NIO,磁盘读写也是用的NIO
3)会一点scala方面的知识。很多人都说看kafka的源码不需要懂scala,但是其实根据我阅读下来,要是真的一点也不懂scala,还是挺难阅读的,所以要懂一些scala的基础知识,比如面向对象,函数编程等,不过要求不高。
有什么Kafka的书可以推荐吗?
《Apache Kafka源码剖析》《kafka技术内幕》《深入理解Kafka 核心设计与实践原理》
最后一句话
本人能力有限,但是会尽最大努力写好这个专栏,欢迎大家支持。
![7131ba14481808797c7e10d8cb3a6a7f.png](https://i-blog.csdnimg.cn/blog_migrate/f25464fa2b92a6de183dcf40118bb9b7.jpeg)