TOP
0
0
魅麗。花火原創小說66折起
深入理解KAFKA:核心設計與實踐原理(簡體書)
滿額折

深入理解KAFKA:核心設計與實踐原理(簡體書)

人民幣定價:99 元
定  價:NT$ 594 元
優惠價:87517
領券後再享89折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:15 點
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

本書從Kafka的基本概念入手,主要從生產端、消費端、服務端等3個方面進行全面的陳述,主要內容包括Kafka的基本使用方式、生產者客戶端的使用、消費者客戶端的使用、主題與分區、日誌存儲、深入原理解析、監控的設計、不錯應用的擴展以及與Spark的集成等。雖然Kafka的內核使用Scala語言編寫,但是本書基本以Java語言作為主要的示例語言,方便絕大多數讀者的理解。本書雖然沒有明確的界定,但是總體上可以隱性的劃分為三個部分:基礎篇、原理篇和擴展篇,以這種循序漸進的方式更能讓讀者容易接受。

名人/編輯推薦

本書從Kafka的基本概念入手,主要從生產端、消費端、服務端等3個方面進行全面的陳述,主要內容包括Kafka的基本使用方式、生產者客戶端的使用、消費者客戶端的使用、主題與分區、日誌存儲、深入原理解析、監控的設計、高級應用的擴展以及與Spark的集成等。雖然Kafka的內核使用Scala語言編寫,但是本書基本以Java語言作為主要的示例語言,方便絕大多數讀者的理解。

初識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的基礎概念進行籠統的介紹,之後講解如何安裝與配置Kafka,以及通過簡單的生產消費消息的示例讓讀者能夠快速地入門。
第2章主要是針對生產者客戶端的講解,包括生產者客戶端參數、消息的發送、序列化、分區器、攔截器、原理解析等內容。
第3章主要是針對消費者客戶端的講解,包括消費者客戶端參數、主題與分區的訂閱、反序列化、消息的消費、位移提交、再均衡、攔截器、多線程實現等內容。
第4章主要介紹主題與分區的管理,包括創建主題、修改主題、刪除主題、主題端參數配置、優先副本、分區重分配、複製限流,以及對分區數抉擇的探討等內容。
第5章主要講解日誌存儲相關的內容,包括文件目錄的佈局、日誌格式的演變、日誌清理的細節、底層存儲的原理等內容。
第6章主要對Kafka服務端的一些內部核心內容進行詳細的闡述,包括協議設計、延時操作、控制器、leader的選舉等內容。
第7章主要是對Kafka客戶端相關的原理剖析,當然其中也需要牽涉服務端的內容。這一章包括消費端分區分配策略、消費者協調器和組協調器、__consumer_offsets的剖析、事務的介紹等內容。
第8章主要對可靠性、一致性等核心原理進行陳述,本章內容最為抽象,主要包括失效副本、ISR伸縮、LEO與HW、Leader Epoch的介入、日誌同步機制、可靠性分析等內容。
第9章主要是對Kafka相關應用的一些補充,包括一些重要的管理工具,還有Kafka Connect、Kafka Mirror Maker和Kafka Streams等內容。
第10章是與Kafka監控相關的內容,監控作為Kafka生態中的一個必備內容,有著相當重要的地位,通過學習本章的內容可以讓讀者對整個監控的脈絡設計和底層實現有清晰的認知。
第11章是對Kafka做一些功能性的擴展,包括過期時間、延時隊列、死信隊列、重試隊列、消息路由、消息軌跡、消息審計、消息代理等內容,最後還通過對消息中間件選型的闡述以期讓讀者對整個消息中間件領域有發散性的思考。
第12章主要講述的是Kafka與Spark集成的一些內容,包括Spark基本概念、Spark Streaming、Structured Streaming,以及它們與Kafka集成的細節等內容。
讀者討論
由於筆者水平有限,書中難免有錯誤之處。在本書出版後的任何時間,若您對本書有任何疑問都可以通過zhuzhonghua.ideal@qq.com發送郵件給筆者,也可以到筆者的個人博客http://blog.csdn.net/u013256816中留言,向筆者闡述您的建議和想法。書中的源碼會在本書發行之後進行整理,最後會公佈在筆者的個人微信公眾號(朱小廝的博客,二維碼在封面上)中。
致謝
首先要感謝我身處的平臺,讓我有機會深入地接觸Kafka。同時要感謝我身邊的同事,正因為有了你們的鼓勵和幫助,才讓我能夠迅速地成長,本書的問世,離不開與你們在工作中一起積累的點點滴滴。
感謝蔣曉峰同學不辭辛苦地為本書校稿,有了你的幫助才會讓本書更加完善。
感謝在我博客、微信公眾號中提問留言的朋友,感謝消息生態圈的朋友,有了你們的意見和建議才能讓本書更加完善。
感謝博文視點的編輯們,本書能夠順利、迅速地出版,多虧了你們的敬業精神和一絲不苟的工作態度。
最後還要感謝我的家人,在我佔用絕大部分的業餘時間進行寫作的時候,能夠給予我極大的寬容、理解和支持,讓我能夠全身心地投入寫作之中。


朱忠華

目次

第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源碼環境搭建

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 517
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區