图解kafka之实战指南(kafka教程详解,实战了解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 之实战指南》和《图解 Kafka之核心原理》依据 Kafka 2.0.0 版本编写,里面所有内容都具备理论基础并全部实践过,里面的内容也是笔者在工作中的认知积累,希望我的著作能够让读者有所收获。

“图解 Kafka”系列共分为两个小册,上册为《图解 Kafka 之实战指南》,主要讲解 Kafka 相关的基础知识和实战操作,适合小白入门以及老司机巩固练习;下册为《图解 Kafka 之核心原理》,主要讲解了 Kafka 的核心实现原理,适合对 Kafka 有一定认知的同学。

“图解 Kafka”系列的内容源自《深入理解Kafka:核心设计与实践原理》一书,相当于此书的电子版,内容基本没有做改变,只是在内容编排上做了一定的修改。目前市面上其余购买此书电子版的通道已全部关闭,也就是说,这里为电子版唯一官方购买入口。

“图解 Kafka”系列分为两个小册是因为原书篇幅较长,共计547.2千字,且单体定价颇高,有些读者难以接受。分成两个小册不仅可以将单价拆离,而且可以更好的服务于特定的读者,《图解 Kafka 之实战指南》适合于入门和实践巩固,不过笔者有信心对于熟悉 Kafka 核心原理的资深老司机也能够有所收获。而就《图解 Kafka 之核心原理》而言,需要读者对 Kafka 有一定的了解,否则会难以消化。

读者可以先行购买《图解 Kafka 之实战指南》来对 Kafka 做一定程度上的了解及深入,后续需要进阶的话可以继续购买《图解 Kafka 之核心原理》。如果有需要纸质版的读者,与两小册对应的《深入理解 Kafka:核心设计与实践原理》在京东、亚马逊、当当等都有售,可以自行购买。

本书目录

  1. 初识Kafka
  2. Kafka入门
  3. 生产者客户端开发
  4. 序列化-分区器-拦截器
  5. 生产者客户端原理分析
  6. 生产者重要参数
  7. 消费者与消费组
  8. 消费者客户端开发
  9. 反序列化
  10. 消息消费
  11. 位移提交
  12. 指定位移消费
  13. 再均衡器-拦截器
  14. 消费者多线程实现
  15. 重要的消费者参数
  16. 创建主题
  17. 分区副本的分配
  18. 查看、修改和删除主题
  19. 配置管理
  20. 初识KafkaAdminClient
  21. 优先副本的选举
  22. 分区重分配
  23. 复制限流
  24. 修改副本因子
  25. 如何选择合适的分区数(上)
  26. 如何选择合适的分区数(下)
  27. 常用管理工具
  28. Kafka Connect
  29. Kafka Mirror Maker
  30. Kafka Streams
  31. Kafka监控(上)
  32. Kafka监控(下)
  33. 初识Spark
  34. Kafka与Spark Streaming的整合
  35. Kafka与Structured Streaming的整合
  36. 写在最后

你会学到什么?

很多认识笔者的朋友经常会问我要一些 Kafka 的面试题,其中有些是面试官,他们需要去面试别人;有些是被面试者,他们需要去寻找一份新的工作。以前总是已没时间为借口而么有细心整理,最近笔者花了点时间,做了一个下面的问题列表,足以可以应对绝大多数 Kafka 相关的面试:

  • Kafka 的用途有哪些?使用场景如何?
  • Kafka 中的 ISR、AR 又代表什么?ISR 的伸缩又指什么
  • Kafka 中的 HW、LEO、LSO、LW 等分别代表什么?
  • Kafka 中是怎么体现消息顺序性的?
  • Kafka 中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?
  • Kafka 生产者客户端的整体结构是什么样子的?
  • Kafka 生产者客户端中使用了几个线程来处理?分别是什么?
  • Kafka 的旧版 Scala 的消费者客户端的设计有什么缺陷?
  • “消费组中的消费者个数如果超过 topic 的分区,那么就会有消费者消费不到数据”这句话是否正确?如果正确,那么有没有什么 hack 的手段?
  • 消费者提交消费位移时提交的是当前消费到的最新消息的 offset 还是 offset+1?
  • 有哪些情形会造成重复消费?
  • 那些情景下会造成消息漏消费?
  • KafkaConsumer 是非线程安全的,那么怎么样实现多线程消费?
  • 简述消费者与消费组之间的关系
  • 当你使用 kafka-topics.sh 创建(删除)了一个 topic 之后,Kafka 背后会执行什么逻辑?
  • topic 的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?
  • topic 的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?
  • 创建 topic 时如何选择合适的分区数?
  • Kafka 目前有哪些内部 topic,它们都有什么特征?各自的作用又是什么?
  • 优先副本是什么?它有什么特殊的作用?
  • Kafka 有哪几处地方有分区分配的概念?简述大致的过程及原理。
  • 简述 Kafka 的日志目录结构
  • Kafka 中有那些索引文件?
  • 如果我指定了一个 offset,Kafka 怎么查找到对应的消息?
  • 如果我指定了一个 timestamp,Kafka 怎么查找到对应的消息?
  • 聊一聊你对 Kafka 的 Log Retention 的理解
  • 聊一聊你对 Kafka 的 Log Compaction 的理解
  • 聊一聊你对 Kafka 底层存储的理解(页缓存、内核层、块层、设备层)
  • 聊一聊 Kafka 的延时操作的原理
  • 聊一聊 Kafka 控制器的作用
  • 消费再均衡的原理是什么?(提示:消费者协调器和消费组协调器)
  • Kafka 中的幂等是怎么实现的?
  • Kafka 中的事务是怎么实现的?
  • Kafka 中有那些地方需要选举?这些地方的选举策略又有哪些?
  • 失效副本是指什么?有那些应对措施?
  • 多副本下,各个副本中的 HW 和 LEO 的演变过程
  • 为什么 Kafka 不支持读写分离?
  • Kafka 在可靠性方面做了哪些改进?(HW, LeaderEpoch)
  • Kafka 中怎么实现死信队列和重试队列?
  • Kafka 中的延迟队列怎么实现
  • Kafka 中怎么做消息审计?
  • Kafka 中怎么做消息轨迹?
  • Kafka 中有那些配置参数比较有意思?聊一聊你的看法
  • Kafka 中有那些命名比较有意思?聊一聊你的看法
  • Kafka 有哪些指标需要着重关注?
  • 怎么计算 Lag?(注意read_uncommittedread_committed状态下的不同)
  • Kafka 的那些设计让它有如此高的性能?
  • Kafka 有什么优缺点?
  • 还用过什么同质类的其它产品,与 Kafka 相比有什么优缺点?
  • 为什么选择 Kafka ?
  • 在使用 Kafka 的过程中遇到过什么困难?怎么解决的?
  • 怎么样才能确保 Kafka 极大程度上的可靠性?
  • 聊一聊你对 Kafka 生态的理解

那么在这里你可以学到什么呢?如果你都能回答上这些问题,那么你的确也学习不到多少内容,否则,你真的需要好好的学习一番。而这些问题的答案就在《图解 Kafka 之实战指南》和《图解 Kafka 之核心原理》中,相信你们在学习完之后一定可以流畅的应对这些问题。当然了,这些问题的答案只是这两本小册内容中的一部分,里面还有更多有意思的内容等着读者去挖掘。

适宜人群

两小册既适合 Kafka 的初学者,也适合对于 Kafka 有一定深度认知的老司机。

作者介绍

朱小厮(笔名),目前就职于某大型互联网公司基础架构部,专注于分布式中间件领域,著有《深入理解 Kafka:核心设计与实践原理》和《RabbitMQ 实战指南》两本畅销书籍。

图解kafka之实战指南(kafka教程详解,实战了解kafka有什么用)
(0)
上一篇 2020年4月18日 下午5:02
下一篇 2020年4月19日 上午11:48

相关推荐

发表回复

登录后才能评论