J梳理了一下自己在入门 kafka 时读过的一些书, 希望能帮助到对 kafka 感兴趣的小伙伴.
涉及到的书籍:
kafka 权威指南
Kafka: The Definitive Guide (kafka 权威指南的英文原版)
Kafka入门与实践
kafka技术内幕
推荐的书籍阅读顺序:
优先阅读 「kafka 权威指南」, 基于 kafka 0.8.0 版本, 并包含 0.9.0 版本中即将引入的重要特性. 整体内容的设计上要合理得多, 基础-核心-架构-原理-更多组件-管理运维, 一步步循序渐进, 用书中的话来说
给予一个技术书籍作者最好的赞赏莫过于这句话 -- 如果在一开始接触这门技术时能看到这本书就好了
推荐的阅读方式: 「精读」, 适合用来 构建 对 kafka 理解
其次阅读 「Kafka入门与实践」, 基于 kafka 0.9.0 版本. 权威指南在讲解具体的组件的时候, 才会附上少量的代码, 并且配上详细的注释, 而这本书在讲解组件时细致入微, 不仅会有具体类/方法的代码呈现和分析, 多半还配有「流程图/运行图」 等辅助进行讲解, 并且在 实践 上有很多 「真知灼见」(或者说踩过一些坑). 如果希望在生产上使用, 很有必要快速的看一遍实践部分的相关内容.
推荐的阅读方式: 「快速阅读」掌握整本书的大致结构, 在感兴趣的组件部分, 推荐配合最新的源码一起阅读. 尤其推荐「实践」相关部分的内容.
需要更深入细致的了解的话, 「kafka技术内幕」值得入手, 基于 kafka 0.9.0 版本(当时最新) 做的深入解读, 700多页的厚度会让你非常有「充实感」. 直到今年技术总监和我聊, 希望在 kafka 上做一些技术准备时, 才从书架上解开了尘封.
推荐阅读方式: 兴趣驱动是最好的, 作者就是这样的情况下慢慢积累出的这样厚厚一本书, 我对高可用和高性能部分比较感兴趣, 所以配合最新的源码, 精读了这部分内容
Kafka: The Definitive Guide, 关于英文原版, 我阅读英文并不流畅, 所以还是中文书籍为主, 英文原版多是「辅助作用」, 分享一条小 tips
在一些感觉「怪异」的地方查看一下原版, 往往有奇效
举几个奇效的例子:
kafka 中的 broker, 有本书里作者称之为 「代理」, 如果在原版里整体看过 kafka 各个组件及其英文, 就不容易被误导了
关于复制, replication vs mirror: kafka 中有专门的 mirrorMaker 模块处理复制的任务, 而经典的数据库主从复制中, 多是使用 replication. 英文原版中就特意比较了这 2 个词
技术类书籍想要获得好的读书效果, 当然要动手. 值得参考的 github 项目:
apache/kafka: kafka 源码, 在深入的过程中, 看书可以很好的引路, 源码才是最好的老师
wurstmeister/kafka-docker: 目前使用量最高的 kafka docker 镜像. 虽然 kafka 也支持单机部署. 但是如果不能动手跑一个 kafka 集群进行实践, 「那和咸鱼有什么区别」
kafka-manager: 雅虎实现的 kafka 开源管理组件, 要上生产, 管理组件也必须得跟上才行