發表於2024-12-21
業內專傢王國璋、付穩、王迪、楊金峰聯袂力薦。
基於Apache Kafka 1.0.0版本進行介紹,Kafka Contributor執筆。
從Kafka基本概念與特性開始,詳細介紹瞭Kafka的部署、開發、運營、監控、調試、優化以及重要組件的設計原理,並給齣瞭翔實的案例。
本書既適閤作為Kafka的入門書籍,也適閤係統架構師和一綫開發工程師參考閱讀。
本書是涵蓋Apache Kafka各方麵的具有實踐指導意義的工具書和參考書。作者結閤典型的使用場景,對Kafka整個技術體係進行瞭較為全麵的講解,以便讀者能夠舉一反三,直接應用於實踐。同時,本書還對Kafka的設計原理及其流式處理組件進行瞭較深入的探討,並給齣瞭翔實的案例。
本書共分為10章:第1章全麵介紹消息引擎係統以及Kafka的基本概念與特性,快速帶領讀者走進Kafka的世界;第2章簡要迴顧瞭Apache Kafka的發展曆史;第3章詳細介紹瞭Kafka集群環境的搭建;第4、5章深入探討瞭Kafka客戶端的使用方法;第6章帶領讀者一覽Kafka內部設計原理;第7~9章以實例的方式講解瞭Kafka集群的管理、監控與調優;第10章介紹瞭Kafka新引入的流式處理組件。
鬍夕,北航計算機碩士畢業,目前就職於一傢互聯網金融公司,開源技術愛好者。曾任職於IBM、搜狗、微博等公司。對Kafka及其他開源流處理技術與框架有深刻認識,同時也是國內活躍的Kafka代碼貢獻者。對Kafka原理、運行機製以及應用開發都有較深的研究。
鬍夕是Apache Kafka在國內社區中非常活躍的貢獻者之一。在詳讀這本書的時候,我很贊嘆於他對Kafka全麵且係統的瞭解。本書除瞭介紹Kafka本身的技術之外,還有不少作者本人的運維經驗和生態圈使用經驗分享,十分值得一讀。
——Kafka PMC、Committer 王國璋
Kafka是由Apache軟件基金會開發的一個開源流處理平颱,近年來蓬勃發展,在雲計算和大數據技術棧中扮演著重要的角色,對於大型推薦係統、廣告係統、搜索係統的實時數據分析非常有價值。本書是一本很好的Kafka入門及進階書籍,從部署、原理、大規模生産環境實踐及調優等各個方麵進行瞭介紹,深入淺齣。本書既適閤作為Kafka的入門書籍,也適閤作為係統架構師和一綫開發工程師的參考書籍,無論是泛讀還是精讀,相信讀者都會有較大收獲。
——新浪微博技術專傢 付穩
Kafka是一款高性能、低延遲、高吞吐量的分布式發布-訂閱消息係統,在推薦、搜索、廣告等實時數據係統中應用廣泛。本書從Kafka基本概念與特性開始,詳細介紹瞭Kafka的部署、開發、運營、監控、調試、優化以及重要組件的設計原理,圖文並茂,幫助讀者快速、深入地掌握Kafka,並能基於Kafka更好地改良或實現高可用、低耦閤的數據處理係統。
——騰訊公司AI平颱部助理總經理 王迪
Kafka自誕生以來,迅速風靡成為大數據時代數據傳輸的關鍵。本書作者從實戰角度齣發,講解瞭Kafka的運用實踐,作者將自己多年的經驗融入其中,同時又深入剖析瞭Kafka的核心實現原理,兼顧廣度與深度,讓我受益,對廣大大數據從業者來說這是一本值得研讀的好書。
——今日頭條架構師 楊金峰
目錄
第1章 認識Apache Kafka 1
1.1 Kafka快速入門 1
1.1.1 下載並解壓縮Kafka二進製代碼壓縮包文件 2
1.1.2 啓動服務器 3
1.1.3 創建topic 3
1.1.4 發送消息 4
1.1.5 消費消息 4
1.2 消息引擎係統 5
1.2.1 消息設計 6
1.2.2 傳輸協議設計 6
1.2.3 消息引擎範型 6
1.2.4 Java消息服務 8
1.3 Kafka概要設計 8
1.3.1 吞吐量/延時 8
1.3.2 消息持久化 11
1.3.3 負載均衡和故障轉移 12
1.3.4 伸縮性 13
1.4 Kafka基本概念與術語 13
1.4.1 消息 14
1.4.2 topic和partition 16
1.4.3 offset 17
1.4.4 replica 18
1.4.5 leader和follower 18
1.4.6 ISR 19
1.5 Kafka使用場景 20
1.5.1 消息傳輸 20
1.5.2 網站行為日誌追蹤 20
1.5.3 審計數據收集 20
1.5.4 日誌收集 20
1.5.5 Event Sourcing 21
1.5.6 流式處理 21
1.6 本章小結 21
第2章 Kafka發展曆史 22
2.1 Kafka的曆史 22
2.1.1 背景 22
2.1.2 Kafka橫空齣世 23
2.1.3 Kafka開源 24
2.2 Kafka版本變遷 25
2.2.1 Kafka的版本演進 25
2.2.2 Kafka的版本格式 26
2.2.3 新版本功能簡介 26
2.2.4 舊版本功能簡介 31
2.3 如何選擇Kafka版本 35
2.3.1 根據功能場景 35
2.3.2 根據客戶端使用場景 35
2.4 Kafka與Confluent 36
2.5 本章小結 37
第3章 Kafka綫上環境部署 38
3.1 集群環境規劃 38
3.1.1 操作係統的選型 38
3.1.2 磁盤規劃 40
3.1.3 磁盤容量規劃 42
3.1.4 內存規劃 43
3.1.5 CPU規劃 43
3.1.6 帶寬規劃 44
3.1.7 典型綫上環境配置 45
3.2 僞分布式環境安裝 45
3.2.1 安裝Java 46
3.2.2 安裝ZooKeeper 47
3.2.3 安裝單節點Kafka集群 48
3.3 多節點環境安裝 49
3.3.1 安裝多節點ZooKeeper集群 50
3.3.2 安裝多節點Kafka 54
3.4 驗證部署 55
3.4.1 測試topic創建與刪除 55
3.4.2 測試消息發送與消費 57
3.4.3 生産者吞吐量測試 58
3.4.4 消費者吞吐量測試 58
3.5 參數設置 59
3.5.1 broker端參數 59
3.5.2 topic級彆參數 62
3.5.3 GC參數 63
3.5.4 JVM參數 64
3.5.5 OS參數 64
3.6 本章小結 65
第4章 producer開發 66
4.1 producer概覽 66
4.2 構造producer 69
4.2.1 producer程序實例 69
4.2.2 producer主要參數 75
4.3 消息分區機製 80
4.3.1 分區策略 80
4.3.2 自定義分區機製 80
4.4 消息序列化 83
4.4.1 默認序列化 83
4.4.2 自定義序列化 84
4.5 producer攔截器 87
4.6 無消息丟失配置 90
4.6.1 producer端配置 91
4.6.2 broker端配置 92
4.7 消息壓縮 92
4.7.1 Kafka支持的壓縮算法 93
4.7.2 算法性能比較與調優 93
4.8 多綫程處理 95
4.9 舊版本producer 96
4.10 本章小結 98
第5章 consumer開發 99
5.1 consumer概覽 99
5.1.1 消費者(consumer) 99
5.1.2 消費者組(consumer group) 101
5.1.3 位移(offset) 102
5.1.4 位移提交 103
5.1.5 __consumer_offsets 104
5.1.6 消費者組重平衡(consumer group rebalance) 106
5.2 構建consumer 106
5.2.1 consumer程序實例 106
5.2.2 consumer腳本命令 111
5.2.3 consumer主要參數 112
5.3 訂閱topic 115
5.3.1 訂閱topic列錶 115
5.3.2 基於正則錶達式訂閱topic 115
5.4 消息輪詢 115
5.4.1 poll內部原理 115
5.4.2 poll使用方法 116
5.5 位移管理 118
5.5.1 consumer位移 119
5.5.2 新版本consumer位移管理 120
5.5.3 自動提交與手動提交 121
5.5.4 舊版本consumer位移管理 123
5.6 重平衡(rebalance) 123
5.6.1 rebalance概覽 123
5.6.2 rebalance觸發條件 124
5.6.3 rebalance分區分配 124
5.6.4 rebalance generation 126
5.6.5 rebalance協議 126
5.6.6 rebalance流程 127
5.6.7 rebalance監聽器 128
5.7 解序列化 130
5.7.1 默認解序列化器 130
5.7.2 自定義解序列化器 131
5.8 多綫程消費實例 132
5.8.1 每個綫程維護一個KafkaConsumer 133
5.8.2 單KafkaConsumer實例+多worker綫程 135
5.8.3 兩種方法對比 140
5.9 獨立consumer 141
5.10 舊版本consumer 142
5.10.1 概覽 142
5.10.2 high-level consumer 143
5.10.3 low-level consumer 147
5.11 本章小結 153
第6章 Kafka設計原理 154
6.1 broker端設計架構 154
6.1.1 消息設計 155
6.1.2 集群管理 166
6.1.3 副本與ISR設計 169
6.1.4 水印(watermark)和leader epoch 174
6.1.5 日誌存儲設計 185
6.1.6 通信協議(wire protocol) 194
6.1.7 controller設計 205
6.1.8 broker請求處理 216
6.2 producer端設計 219
6.2.1 producer端基本數據結構 219
6.2.2 工作流程 220
6.3 consumer端設計 223
6.3.1 consumer group狀態機 223
6.3.2 group管理協議 226
6.3.3 rebalance場景剖析 227
6.4 實現精確一次處理語義 230
6.4.1 消息交付語義 230
6.4.2 冪等性producer(idempotent producer) 231
6.4.3 事務(transaction) 232
6.5 本章小結 234
第7章 管理Kafka集群 235
7.1 集群管理 235
7.1.1 啓動broker 235
7.1.2 關閉broker 236
7.1.3 設置JMX端口 237
7.1.4 增加broker 238
7.1.5 升級broker版本 238
7.2 topic管理 241
7.2.1 創建topic 241
7.2.2 刪除topic 243
7.2.3 查詢topic列錶 244
7.2.4 查詢topic詳情 244
7.2.5 修改topic 245
7.3 topic動態配置管理 246
7.3.1 增加topic配置 246
7.3.2 查看topic配置 247
7.3.3 刪除topic配置 248
7.4 consumer相關管理 248
7.4.1 查詢消費者組 248
7.4.2 重設消費者組位移 251
7.4.3 刪除消費者組 256
7.4.4 kafka-consumer-offset-checker 257
7.5 topic分區管理 258
7.5.1 preferred leader選舉 258
7.5.2 分區重分配 260
7.5.3 增加副本因子 263
7.6 Kafka常見腳本工具 264
7.6.1 kafka-console-producer腳本 264
7.6.2 kafka-console-consumer腳本 265
7.6.3 kafka-run-class腳本 267
7.6.4 查看消息元數據 268
7.6.5 獲取topic當前消息數 270
7.6.6 查詢__consumer_offsets 271
7.7 API方式管理集群 273
7.7.1 服務器端API管理topic 273
7.7.2 服務器端API管理位移 275
7.7.3 客戶端API管理topic 276
7.7.4 客戶端API查看位移 280
7.7.5 0.11.0.0版本客戶端API 281
7.8 MirrorMaker 285
7.8.1 概要介紹 285
7.8.2 主要參數 286
7.8.3 使用實例 287
7.9 Kafka安全 288
7.9.1 SASL+ACL 289
7.9.2 SSL加密 297
7.10 常見問題 301
7.11 本章小結 304
第8章 監控Kafka集群 305
8.1 集群健康度檢查 305
8.2 MBean監控 306
8.2.1 監控指標 306
8.2.2 指標分類 308
8.2.3 定義和查詢JMX端口 309
8.3 broker端JMX監控 310
8.3.1 消息入站/齣站速率 310
8.3.2 controller存活JMX指標 311
8.3.3 備份不足的分區數 312
8.3.4 leader分區數 312
8.3.5 ISR變化速率 313
8.3.6 broker I/O工作處理綫程空閑率 313
8.3.7 broker網絡處理綫程空閑率 314
8.3.8 單個topic總字節數 314
8.4 clients端JMX監控 314
8.4.1 producer端JMX監控 314
8.4.2 consumer端JMX監控 316
8.5 JVM監控 317
8.5.1 進程狀態 318
8.5.2 GC性能 318
8.6 OS監控 318
8.7 主流監控框架 319
8.7.1 JmxTool 320
8.7.2 kafka-manager 320
8.7.3 Kafka Monitor 325
8.7.4 Kafka Offset Monitor 327
8.7.5 CruiseControl 329
8.8 本章小結 330
第9章 調優Kafka集群 331
9.1 引言 331
9.2 確定調優目標 333
9.3 集群基礎調優 334
9.3.1 禁止atime更新 335
9.3.2 文件係統選擇 335
9.3.3 設置swapiness 336
9.3.4 JVM設置 337
9.3.5 其他調優 337
9.4 調優吞吐量 338
9.5 調優延時 342
9.6 調優持久性 343
9.7 調優可用性 347
9.8 本章小結 349
第10章 Kafka Connect與Kafka Streams 350
10.1 引言 350
10.2 Kafka Connect 351
10.2.1 概要介紹 351
10.2.2 standalone Connect 353
10.2.3 distributed Connect 356
10.2.4 開發connector 359
10.3 Kafka Streams 362
10.3.1 流處理 362
10.3.2 Kafka Streams核心概念 364
10.3.3 Kafka Streams與其他框架的異同 368
10.3.4 Word Count實例 369
10.3.5 Kafka Streams應用開發 372
10.3.6 Kafka Streams狀態查詢 382
10.4 本章小結 386
前言
2011年年初,美國領英公司(LinkedIn)開源瞭一款基礎架構軟件,以奧地利作傢弗蘭茲?卡夫卡(Franz Kafka)的名字命名,之後LinkedIn將其貢獻給Apac Apache Kafka實戰 下載 mobi epub pdf txt 電子書 格式
Apache Kafka實戰 下載 mobi pdf epub txt 電子書 格式 2024
Apache Kafka實戰 下載 mobi epub pdf 電子書實用性強,乾貨多,適閤放在案頭隨時使用
評分此用戶未填寫評價內容
評分感覺不錯,價格也很公道,值的購買!
評分1234567890
評分6666666666666666666666666666666666666666666
評分感覺不錯,價格也很公道,值的購買!
評分6666666666666666666666666666666666666666666
評分一直趁著活動買書,很不錯的。
評分包裝可以,書很新
Apache Kafka實戰 mobi epub pdf txt 電子書 格式下載 2024