序 xiii
前言 xv
第1章 初識Kafka 1
1.1 發布與訂閱消息係統 1
1.1.1 如何開始 2
1.1.2 獨立的隊列係統 3
1.2 Kafka登場 4
1.2.1 消息和批次 4
1.2.2 模式 4
1.2.3 主題和分區 5
1.2.4 生産者和消費者 5
1.2.5 broker和集群 6
1.2.6 多集群 7
1.3 為什麼選擇Kafka 8
1.3.1 多個生産者 8
1.3.2 多個消費者 8
1.3.3 基於磁盤的數據存儲 9
1.3.4 伸縮性 9
1.3.5 高性能 9
1.4 數據生態係統 9
1.5 起源故事 11
1.5.1 LinkedIn的問題 11
1.5.2 Kafka的誕生 12
1.5.3 走嚮開源 12
1.5.4 命名 13
1.6 開始Kafka之旅 13
第2章 安裝Kafka 14
2.1 要事先行 14
2.1.1 選擇操作係統 14
2.1.2 安裝Java 14
2.1.3 安裝Zookeeper 15
2.2 安裝Kafka Broker 17
2.3 broker配置 18
2.3.1 常規配置 18
2.3.2 主題的默認配置 19
2.4 硬件的選擇 23
2.4.1 磁盤吞吐量 23
2.4.2 磁盤容量 23
2.4.3 內存 23
2.4.4 網絡 24
2.4.5 CPU 24
2.5 雲端的Kafka 24
2.6 Kafka集群 24
2.6.1 需要多少個broker 25
2.6.2 broker配置 25
2.6.3 操作係統調優 26
2.7 生産環境的注意事項 28
2.7.1 垃圾迴收器選項 28
2.7.2 數據中心布局 29
2.7.3 共享Zookeeper 29
2.8 總結 30
第3章 Kafka生産者——嚮Kafka寫入數據 31
3.1 生産者概覽 32
3.2 創建Kafka生産者 33
3.3 發送消息到Kafka 34
3.3.1 同步發送消息 35
3.3.2 異步發送消息 35
3.4 生産者的配置 36
3.5 序列化器 39
3.5.1 自定義序列化器 39
3.5.2 使用Avro序列化 41
3.5.3 在Kafka裏使用Avro 42
3.6 分區 45
3.7 舊版的生産者API 46
3.8 總結 47
第4章 Kafka消費者——從Kafka讀取數據 48
4.1 KafkaConsumer概念 48
4.1.1 消費者和消費者群組 48
4.1.2 消費者群組和分區再均衡 51
4.2 創建Kafka 消費者 52
4.3 訂閱主題 53
4.4 輪詢 53
4.5 消費者的配置 55
4.6 提交和偏移量 57
4.6.1 自動提交 58
4.6.2 提交當前偏移量 59
4.6.3 異步提交 59
4.6.4 同步和異步組閤提交 61
4.6.5 提交特定的偏移量 61
4.7 再均衡監聽器 62
4.8 從特定偏移量處開始處理記錄 64
4.9 如何退齣 66
4.10 反序列化器 67
4.11 獨立消費者——為什麼以及怎樣使用沒有群組的消費者 71
4.12 舊版的消費者API 71
4.13 總結 72
第5章 深入Kafka 73
5.1 集群成員關係 73
5.2 控製器 74
5.3 復製 74
5.4 處理請求 76
5.4.1 生産請求 78
5.4.2 獲取請求 78
5.4.3 其他請求 80
5.5 物理存儲 81
5.5.1 分區分配 81
5.5.2 文件管理 82
5.5.3 文件格式 83
5.5.4 索引 84
5.5.5 清理 84
5.5.6 清理的工作原理 84
5.5.7 被刪除的事件 86
5.5.8 何時會清理主題 86
5.6 總結 86
第6章 可靠的數據傳遞 87
6.1 可靠性保證 87
6.2 復製 88
6.3 broker配置 89
6.3.1 復製係數 89
6.3.2 不完全的首領選舉 90
6.3.3 最少同步副本 91
6.4 在可靠的係統裏使用生産者 92
6.4.1 發送確認 92
6.4.2 配置生産者的重試參數 93
6.4.3 額外的錯誤處理 94
6.5 在可靠的係統裏使用消費者 94
6.5.1 消費者的可靠性配置 95
6.5.2 顯式提交偏移量 95
6.6 驗證係統可靠性 97
6.6.1 配置驗證 98
6.6.2 應用程序驗證 98
6.6.3 在生産環境監控可靠性 99
6.7 總結 100
第7章 構建數據管道 101
7.1 構建數據管道時需要考慮的問題 102
7.1.1 及時性 102
7.1.2 可靠性 102
7.1.3 高吞吐量和動態吞吐量 103
7.1.4 數據格式 103
7.1.5 轉換 104
7.1.6 安全性 104
7.1.7 故障處理能力 104
7.1.8 耦閤性和靈活性 105
7.2 如何在Connect API和客戶端API之間作齣選擇 105
7.3 Kafka Connect 106
7.3.1 運行Connect 106
7.3.2 連接器示例——文件數據源和文件數據池 107
7.3.3 連接器示例——從MySQL到ElasticSearch 109
7.3.4 深入理解Connect 114
7.4 Connect之外的選擇 116
7.4.1 用於其他數據存儲的攝入框架 116
7.4.2 基於圖形界麵的ETL 工具 117
7.4.3 流式處理框架 117
7.5 總結 117
第8章 跨集群數據鏡像 118
8.1 跨集群鏡像的使用場景 118
8.2 多集群架構 119
8.2.1 跨數據中心通信的一些現實情況 119
8.2.2 Hub和Spoke架構 120
8.2.3 雙活架構 121
8.2.4 主備架構 123
8.2.5 延展集群 127
8.3 Kafka的MirrorMaker 128
8.3.1 如何配置 129
8.3.2 在生産環境部署MirrorMaker 130
8.3.3 MirrorMaker調優 132
8.4 其他跨集群鏡像方案 134
8.4.1 優步的uReplicator 134
8.4.2 Confluent的Replicator 135
8.5 總結 135
第9章 管理Kafka 136
9.1 主題操作 136
9.1.1 創建主題 137
9.1.2 增加分區 138
9.1.3 刪除主題 138
9.1.4 列齣集群裏的所有主題 139
9.1.5 列齣主題詳細信息 139
9.2 消費者群組 140
9.2.1 列齣並描述群組 140
9.2.2 刪除群組 142
9.2.3 偏移量管理 142
9.3 動態配置變更 143
9.3.1 覆蓋主題的默認配置 143
9.3.2 覆蓋客戶端的默認配置 145
9.3.3 列齣被覆蓋的配置 145
9.3.4 移除被覆蓋的配置 146
9.4 分區管理 146
9.4.1 首選的首領選舉 146
9.4.2 修改分區副本 147
9.4.3 修改復製係數 150
9.4.4 轉儲日誌片段 151
9.4.5 副本驗證 152
9.5 消費和生産 153
9.5.1 控製颱消費者 153
9.5.2 控製颱生産者 155
9.6 客戶端ACL 157
9.7 不安全的操作 157
9.7.1 移動集群控製器 157
9.7.2 取消分區重分配 157
9.7.3 移除待刪除的主題 158
9.7.4 手動刪除主題 158
9.8 總結 159
第10章 監控Kafka 160
10.1 度量指標基礎 160
10.1.1 度量指標在哪裏 160
10.1.2 內部或外部度量 161
10.1.3 應用程序健康檢測 161
10.1.4 度量指標的覆蓋麵 161
10.2 broker的度量指標 162
10.2.1 非同步分區 162
10.2.2 broker度量指標 166
10.2.3 主題和分區的度量指標 173
10.2.4 Java虛擬機監控 174
10.2.5 操作係統監控 175
10.2.6 日誌 176
10.3 客戶端監控 177
10.3.1 生産者度量指標 177
10.3.2 消費者度量指標 179
10.3.3 配額 181
10.4 延時監控 182
10.5 端到端監控 183
10.6 總結 183
第11章 流式處理 184
11.1 什麼是流式處理 185
11.2 流式處理的一些概念 186
11.2.1 時間 187
11.2.2 狀態 188
11.2.3 流和錶的二元性 188
11.2.4 時間窗口 189
11.3 流式處理的設計模式 190
11.3.1 單個事件處理 191
11.3.2 使用本地狀態 191
11.3.3 多階段處理和重分區 193
11.3.4 使用外部查找——流和錶的連接 193
11.3.5 流與流的連接 195
11.3.6 亂序的事件 195
11.3.7 重新處理 196
11.4 Streams示例 197
11.4.1 字數統計 197
11.4.2 股票市場統計 199
11.4.3 填充點擊事件流 201
11.5 Kafka Streams的架構概覽 202
11.5.1 構建拓撲 202
11.5.2 對拓撲進行伸縮 203
11.5.3 從故障中存活下來 205
11.6 流式處理使用場景 205
11.7 如何選擇流式處理框架 206
11.8 總結 208
附錄A 在其他操作係統上安裝Kafka 209
作者介紹 214
封麵介紹 214
我一直認為,一本好的技術書籍,不應該僅僅是知識的搬運工,更應該能夠啓發讀者的思考,激發讀者的創造力。《Kafka權威指南》無疑做到瞭這一點。這本書的寫作風格嚴謹而又不失趣味,它不僅僅羅列瞭Kafka的各種API和配置項,更深入地探討瞭這些選項背後的設計理念和權衡。我印象最深刻的是關於Kafka的消息持久化機製和恢復機製的講解,它讓我對數據的可靠性有瞭更深刻的認識。書中對隔離級彆、冪等性、事務等概念的闡述,以及如何在分布式環境中保證數據的一緻性,都為我提供瞭寶貴的參考。此外,這本書還涉及到瞭Kafka的安全方麵,包括認證、授權、加密等,這些都是在生産環境中構建安全可靠的Kafka集群所必需的。總而言之,這本書不僅是一個技術指南,更是一本啓迪思考的讀物,讓我能夠以更宏觀的視角審視Kafka,並在實際工作中做齣更明智的決策,不斷提升自己的技術能力和工程實踐水平。
評分在我的職業生涯中,我接觸過不少關於分布式係統和消息隊列的書籍,但《Kafka權威指南》的齣現,著實讓我眼前一亮。這本書的編排邏輯清晰,從基礎概念的鋪墊,到核心機製的深入剖析,再到高級特性的詳解,層層遞進,非常適閤我這樣既想打牢基礎又想掌握進階技能的讀者。尤其是書中對Kafka的架構設計,比如Broker、Producer、Consumer、ZooKeeper(雖然新版本中ZooKeeper的使用有所弱化,但理解其曆史演進和設計思想依然重要)等組件的職責和交互方式,都進行瞭細緻入微的講解。我尤其欣賞它對於“exactly-once”語義的討論,以及如何通過不同的配置和編程模式來實現這一目標,這對於構建可靠的數據管道至關重要。此外,書中關於Topic Partitioning、Replication Factor、ISR(In-Sync Replicas)等概念的闡述,不僅讓我理解瞭Kafka的容錯和高可用是如何實現的,還為我在實際工作中優化性能、提高吞吐量提供瞭寶貴的思路。這本書的價值在於,它不僅僅是理論的堆砌,更充滿瞭實踐的智慧,讓我能夠更自信地在實際項目中應用Kafka,解決遇到的各種挑戰。
評分作為一名長期在互聯網公司一綫摸爬滾打的技術人員,我深知理論知識與實戰技能之間的鴻溝。而《Kafka權威指南》恰恰彌閤瞭這一差距。它不僅僅是枯燥的技術文檔的梳理,更像是經驗豐富的架構師在耳邊娓娓道來,將Kafka這個復雜的係統拆解得既易於理解又引人入勝。書中對Kafka生態係統的介紹,如Kafka Connect、Kafka Streams等,讓我看到瞭Kafka不僅僅是一個簡單的消息隊列,而是一個強大的數據集成和流處理平颱。我特彆喜歡其中關於Kafka Connect的章節,它詳細介紹瞭如何利用Connectors將Kafka與其他係統(如數據庫、文件係統、其他消息隊列)無縫集成,這極大地簡化瞭我的數據同步工作。對於Kafka Streams,書中也給齣瞭詳實的應用案例,讓我瞭解到如何利用它進行實時數據分析、ETL等復雜場景。閱讀過程中,我時常會聯想到自己實際項目中遇到的問題,並從中找到解決的靈感。這本書就像一本“武功秘籍”,不僅傳授瞭“招式”,更點撥瞭“內功心法”,讓我對Kafka的理解上升到瞭一個全新的高度,能夠更靈活、更高效地駕馭這個強大的工具。
評分坦白說,我對Kafka的初印象是“高吞吐、低延遲”,但《Kafka權威指南》徹底顛覆瞭我對它的認知,將它描繪成瞭一個更加成熟、更加全麵的數據處理平颱。這本書的深度和廣度都令人印象深刻。它不僅僅關注Kafka本身的核心功能,更將目光投嚮瞭圍繞Kafka構建的整個生態係統。從Producer端如何高效地發送消息,到Consumer端如何高效地消費消息,再到Broker端的調優和監控,這本書都進行瞭深入的探討。我特彆欣賞它在性能調優方麵的篇幅,詳細講解瞭影響Kafka性能的關鍵因素,並提供瞭行之有效的優化策略,比如batching、compression、linger.ms等參數的配置,以及如何根據實際業務場景進行選擇。同時,書中也涵蓋瞭Kafka的監控和運維,包括 Metrics、Log、Alerting等,這些都是保證Kafka集群穩定運行不可或缺的部分。這本書讓我明白,要真正駕馭Kafka,不僅僅是理解它的基本原理,更重要的是掌握如何對其進行精細化管理和優化,以應對日益增長的業務需求和海量數據。
評分對於許多開發者來說,Kafka可能是一個“黑盒子”,知道它能做什麼,但對其內部的運作機製卻知之甚少。《Kafka權威指南》就像一把鑰匙,為我們打開瞭這個黑盒子,讓我們能夠一窺其精妙的設計。這本書以一種非常係統和易懂的方式,剖析瞭Kafka的方方麵麵。從Producer和Consumer的客戶端如何與Broker進行通信,到Broker之間如何進行Leader選舉和數據復製,再到ZooKeeper(在書中討論的視角下)在集群管理中的作用,都進行瞭清晰的闡述。我尤其贊賞書中關於消息順序性保證的論述,以及在分布式環境下實現這一點所麵臨的挑戰和解決方案。這本書不僅僅提供瞭理論知識,更重要的是,它引導我思考如何在實際應用中利用Kafka的特性來解決復雜的業務問題。比如,如何設計閤理的分區策略來平衡負載和提高吞吐量,如何利用Consumer Group來管理消費者的並行度和故障轉移。這本書讓我對Kafka的理解從“知道”提升到瞭“理解”和“應用”,對於任何想要深入掌握Kafka的開發者來說,這都是一本不可多得的寶貴資源。
評分同事買瞭2本書,這本書暫時還沒有來得急看,不過書的質量好很好,這點不用擔心
評分書還可以,講的非常好,就是物流喜歡亂摔,有個角摔壞瞭,哎,不過不影響觀看就好,難免意外。
評分寫得很好,令我快速瞭解這項技術
評分每天五分鍾 每天五分鍾 可以的
評分書沒有想象中的厚,嗬嗬,但是內容非常好,很全麵,實用
評分學習一下內部流程,還沒仔細閱讀,紙張還不錯
評分非常好,京東速度超贊!好好看書
評分這件商品不錯,簡單評論一下,薄薄一本,很多沒講透,作為引導入門吧,還可以
評分書是正版,還沒開始看。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有