深入理解Kafka:核心设计与实践原理

朱忠华
前言 初识Kafka时,笔者接触的还是0.8.1版本,Kafka发展到目前的2.0.0版本,笔者也见证了 Kafka 的蜕变,比如旧版客户端的淘汰、新版客户端的设计、Kafka 控制器的迭代优化、私有协议的变更、事务功能的引入等。Kafka 从昔日的新星逐渐走向成熟,再到今日的王者地位不可撼动,这期间有太多的故事可讲。 刚接触Kafka时,市面上很少有关于Kafka的书籍。在学习Kafka的过程中也经历过很多挫败,比如Scala这门编程语言就让笔者在Kafka的源码大门外却步良久。那时候就在想,如果有一本书能够全方位地解析Kafka该有多好啊。 随着对Kafka的逐步了解,也渐渐地萌生了自己写一本关于Kafka的书的想法,产生这一想法至今已超过两年。在这期间,笔者阴差阳错地先写了一本关于 RabbitMQ 的书,也就是《RabbitMQ实战指南》,此时已是2017年年末,市面上已经陆续出现了好几本有关Kafka的书,而且此时Kafka的版本也已经升级到1.0.0。 笔者认真看过几乎所有现存的Kafka的书籍,回想这一路学习和使用Kafka的经历,深感这些都不是自己理想中的书籍,那么不如自己再“操刀”写一本。本书秉承能用文字表述的就不贴源码、能用图形辅助的就不乏味陈述;既要让新手能够快速入门,也要让老手有所收获,从基础概念入手,再到原理深入,让读者能够由浅入深地理解Kafka。 本书依据Kafka 2.0.0版本编写,书中所有内容都具备理论基础并全部实践过,书中的内容也是笔者在工作中的认知积累,希望本书能够让读者有所收获。 内容大纲 本书共12章,前后章节都有相应的联系,基本上按照由浅入深、由表及里的层次逐层进行讲解,如果读者对其中的某些内容已经掌握,可以选择跳过而翻阅后面的内容,不过还是建议读者按照先后顺序进行阅读。 第1 章对Kafka 的基础概念进行笼统的介绍,之后讲…