新书《深入理解Kafka:核心设计与实践原理》上架,感谢支持~
新書上架
初識 Kafka 時,筆者接觸的還是 0.8.1 版本,Kafka 發展到目前的 2.x 版本,筆者也見證了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 版本編寫,書中所有內容都具備理論基礎并全部實踐過,書中的內容也是筆者在工作中的認知積累,希望本書能夠讓讀者有所收獲。
另一本書
2017年12月筆者的另一本書《RabbitMQ實戰指南》上架,相對于這本《深入理解Kafka》而言只是練練文筆的,沒想到效果也不錯。
相信這本侵注幾倍的《深入理解Kafka:核心設計與實踐原理》也不會讓大家失望。
《深入理解Kafka:核心設計與實踐原理》內容概覽
全書共分12章,共443頁,內容殷實(出本社統計:547.2千字)
目錄概覽
第1章 初識Kafka
1.1 基本概念
1.2 安裝與配置
1.3 生產與消費
1.4 服務端參數配置
1.5 總結
第2章 生產者
2.1 客戶端開發
2.1.1 必要的參數配置
2.1.2 消息的發送
2.1.3 序列化
2.1.4 分區器
2.1.5 生產者攔截器
2.2 原理分析
2.2.1 整體架構
2.2.2 元數據的更新
2.3 重要的生產者參數
2.4 總結
第3章 消費者
3.1 消費者與消費組
3.2 客戶端開發
3.2.1 必要的參數配置
3.2.2 訂閱主題與分區
3.2.3 反序列化
3.2.4 消息消費
3.2.5 位移提交
3.2.6 控制或關閉消費
3.2.7 指定位移消費
3.2.8 再均衡
3.2.9 消費者攔截器
3.2.10 多線程實現
3.2.11 重要的消費者參數
3.3 總結
第4章 主題與分區
4.1 主題的管理
4.1.1 創建主題
4.1.2 分區副本的分配
4.1.3 查看主題
4.1.4 修改主題
4.1.5 配置管理
4.1.6 主題端參數
4.1.7 刪除主題
4.2 初識KafkaAdminClient
4.2.1 基本使用
4.2.2 主題合法性驗證
4.3 分區的管理
4.3.1 優先副本的選舉
4.3.2 分區重分配
4.3.3 復制限流
4.3.4 修改副本因子
4.4 如何選擇合適的分區數
4.4.1 性能測試工具
4.4.2 分區數越多吞吐量就越高嗎
4.4.3 分區數的上限
4.4.4 考量因素
4.5 總結
第5章 日志存儲
5.1 文件目錄布局
5.2 日志格式的演變
5.2.1 v0版本
5.2.2 v1版本
5.2.3 消息壓縮
5.2.4 變長字段
5.2.5 v2版本
5.3 日志索引
5.3.1 偏移量索引
5.3.2 時間戳索引
5.4 日志清理
5.4.1 日志刪除
5.4.2 日志壓縮
5.5 磁盤存儲
5.5.1 頁緩存
5.5.2 磁盤I/O流程
5.5.3 零拷貝
5.6 總結
第6章 深入服務端
6.1 協議設計
6.2 時間輪
6.3 延時操作
6.4 控制器
6.4.1 控制器的選舉及異常恢復
6.4.2 優雅關閉
6.4.3 分區leader的選舉
6.5 參數解密
6.5.1 broker.id
6.5.2 bootstrap.servers
6.5.3 服務端參數列表
6.6 總結
第7章 深入客戶端
7.1 分區分配策略
7.1.1 RangeAssignor分配策略
7.1.2 RoundRobinAssignor分配策略
7.1.3 StickyAssignor分配策略
7.1.4 自定義分區分配策略
7.2 消費者協調器和組協調器
7.2.1 舊版消費者客戶端的問題
7.2.2 再均衡的原理
7.3 __consumer_offsets剖析
7.4 事務
7.4.1 消息傳輸保障
7.4.2 冪等
7.4.3 事務
7.5 總結
第8章 可靠性探究
8.1 副本剖析
8.1.1 失效副本
8.1.2 ISR的伸縮
8.1.3 LEO與HW
8.1.4 Leader Epoch的介入
8.1.5 為什么不支持讀寫分離
8.2 日志同步機制
8.3 可靠性分析
8.4 總結
第9章 Kafka應用
9.1 命令行工具
9.1.1 消費組管理
9.1.2 消費位移管理
9.1.3 手動刪除消息
9.2 Kafka Connect
9.2.1 獨立模式
9.2.2 REST API
9.2.3 分布式模式
9.3 Kafka Mirror Maker
9.4 Kafka Streams
9.5 總結
第10章 Kafka監控
10.1 監控數據的來源
10.1.1 OneMinuteRate
10.1.2 獲取監控指標
10.2 消費滯后
10.3 同步失效分區
10.4 監控指標說明
10.5 監控模塊
10.6 總結
第11章 高級應用
11.1 過期時間(TTL)
11.2 延時隊列
11.3 死信隊列和重試隊列
11.4 消息路由
11.5 消息軌跡
11.6 消息審計
11.7 消息代理
11.7.1 快速入門
11.7.2 REST API介紹及示例
11.7.3 服務端配置及部署
11.7.4 應用思考
11.8 消息中間件選型
11.8.1 各類消息中間件簡述
11.8.2 選型要點概述
11.8.3 消息中間件選型誤區探討
11.9 總結
第12章 Kafka與Spark的集成
12.1 Spark的安裝及簡單應用
12.2 Spark編程模型
12.3 Spark的運行結構
12.4 Spark Streaming簡介
12.5 Kafka與Spark Streaming的整合
12.6 Spark SQL
12.7 Structured Streaming
12.8 Kafka與Structured Streaming的整合
12.9 總結
附錄A Kafka源碼環境搭建
購買通道
筆者個人能力水平有限,不敢說比現有的Kafka書籍都要好,但是筆者有信心絕對不會比任何一本現存的差。
關注“朱小廝的博客”了解更多內容
總結
以上是生活随笔為你收集整理的新书《深入理解Kafka:核心设计与实践原理》上架,感谢支持~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息中间件选型分析——从Kafka与Ra
- 下一篇: 《深入理解Kafka:核心设计与实践原理