掃一掃
關注中圖網
官方微博
本類五星書更多>
-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
買過本商品的人還買了
Kafka技術內幕-圖文詳解Kafka源碼設計與實現 版權信息
- ISBN:9787115469380
- 條形碼:9787115469380 ; 978-7-115-46938-0
- 裝幀:暫無
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Kafka技術內幕-圖文詳解Kafka源碼設計與實現 本書特色
Kafka自LinkedIn開源以來就以高性能、高吞吐量、分布式的特性著稱,本書以0.10版本的源碼為基礎,深入分析了Kafka的設計與實現,包括生產者和消費者的消息處理流程,新舊消費者不同的設計方式,存儲層的實現,協調者和控制器如何確保Kafka集群的分布式和容錯特性,兩種同步集群工具MirrorMaker和uReplicator,流處理的兩種API以及Kafka的一些高級特性等。 《Kafka技術內幕 圖文詳解Kafka源碼設計與實現》適合Kafka開發人員閱讀。
Kafka技術內幕-圖文詳解Kafka源碼設計與實現 內容簡介
圖文詳解Kafka的內部原理、設計與實現 全面分析以Kafka為中心的分布式流平臺 Kafka新特性詳解,包括連接器、流處理
Kafka技術內幕-圖文詳解Kafka源碼設計與實現 目錄
第1章 Kafka入門 1
1.1 Kafka流式數據平臺 1
1.2 Kafka的基本概念 3
1.2.1 分區模型 3
1.2.2 消費模型 4
1.2.3 分布式模型 5
1.3 Kafka的設計與實現 6
1.3.1 文件系統的持久化與數據傳輸效率 6
1.3.2 生產者與消費者 8
1.3.3 副本機制和容錯處理 10
1.4 快速開始 11
1.4.1 單機模式 12
1.4.2 分布式模式 14
1.4.3 消費組示例 16
1.5 環境準備 18
第2章 生產者 22
2.1 新生產者客戶端 22
2.1.1 同步和異步發送消息 23
2.1.2 客戶端消息發送線程 29
2.1.3 客戶端網絡連接對象 31
2.1.4 選擇器處理網絡請求 35
2.2 舊生產者客戶端 43
2.2.1 事件處理器處理客戶端發送的消息 44
2.2.2 對消息集按照節點和分區進行整理 46
2.2.3 生產者使用阻塞通道發送請求 48
2.3 服務端網絡連接 49
2.3.1 服務端使用接收器接受客戶端的連接 50
2.3.2 處理器使用選擇器的輪詢處理網絡請求 53
2.3.3 請求通道的請求隊列和響應隊列 56
2.3.4 Kafka請求處理線程 58
2.3.5 服務端的請求處理入口 58
2.4 小結 60
第3章 消費者:高級API和低級API 61
3.1 消費者啟動和初始化 67
3.1.1 創建并初始化消費者連接器 69
3.1.2 消費者客戶端的線程模型 70
3.1.3 重新初始化消費者 72
3.2 消費者再平衡操作 73
3.2.1 分區的所有權 74
3.2.2 為消費者分配分區 75
3.2.3 創建分區信息對象 78
3.2.4 關閉和更新拉取線程管理器 80
3.2.5 分區信息對象的偏移量 80
3.3 消費者拉取數據 82
3.3.1 拉取線程管理器 82
3.3.2 抽象拉取線程 87
3.3.3 消費者拉取線程 90
3.4 消費者消費消息 94
3.4.1 Kafka消息流 94
3.4.2 消費者迭代消費消息 95
3.5 消費者提交分區偏移量 97
3.5.1 提交偏移量到ZK 98
3.5.2 提交偏移量到內部主題 99
3.5.3 連接偏移量管理器 101
3.5.4 服務端處理提交偏移量的請求 103
3.5.5 緩存分區的偏移量 106
3.6 消費者低級API示例 108
3.6.1 消息消費主流程 109
3.6.2 找出分區的主副本 112
3.6.3 獲取分區的讀取偏移量 113
3.6.4 發送拉取請求并消費消息 116
3.7 小結 117
3.7.1 消費者線程模型 117
3.7.2 再平衡和分區分配 119
第4章 新消費者 121
4.1 新消費者客戶端 125
4.1.1 消費者的訂閱狀態 125
4.1.2 消費者輪詢的準備工作 134
4.1.3 消費者輪詢的流程 138
4.1.4 消費者拉取消息 146
4.1.5 消費者獲取記錄 149
4.1.6 消費消息 160
4.2 消費者的網絡客戶端輪詢 161
4.2.1 異步請求 162
4.2.2 異步請求高級模式 169
4.2.3 網絡客戶端輪詢 184
4.3 心跳任務 188
4.3.1 發送心跳請求 188
4.3.2 心跳狀態 189
4.3.3 運行心跳任務 191
4.3.4 處理心跳結果的示例 192
4.3.5 心跳和協調者的關系 193
4.4 消費者提交偏移量 195
4.4.1 自動提交任務 195
4.4.2 將拉取偏移量作為提交偏移量 197
4.4.3 同步提交偏移量 201
4.4.4 消費者的消息處理語義 202
4.5 小結 206
第5章 協調者 210
5.1 消費者加入消費組 211
5.1.1 元數據與分區分配器 212
5.1.2 消費者的加入組和同步組 213
5.1.3 主消費者執行分配任務 220
5.1.4 加入組的準備、完成和監聽器 224
5.2 協調者處理請求 229
5.2.1 服務端定義發送響應結果的回調方法 229
5.2.2 消費者和消費組元數據 232
5.2.3 協調者處理請求前的條件檢查 236
5.2.4 協調者調用回調方法發送響應給客戶端 237
5.3 延遲的加入組操作 242
5.3.1 “準備再平衡” 242
5.3.2 延遲操作和延遲緩存 244
5.3.3 嘗試完成延遲的加入操作 246
5.3.4 消費組穩定后,原有消費者重新加入消費組 250
5.3.5 消費組未穩定,原有消費者重新加入消費組 251
5.4 消費組狀態機 254
5.4.1 再平衡操作與監聽器 254
5.4.2 消費組的狀態轉換 262
5.4.3 協調者處理“加入組請求” 264
5.4.4 協調者處理“同步組請求” 274
5.4.5 協調者處理“離開組請求” 276
5.4.6 再平衡超時與會話超時 278
5.4.7 延遲的心跳 282
5.5 小結 290
第6章 存儲層 293
6.1 日志的讀寫 293
6.1.1 分區、副本、日志、日志
分段 294
6.1.2 寫入日志 297
6.1.3 日志分段 305
6.1.4 讀取日志 315
6.1.5 日志管理 329
6.1.6 日志壓縮 336
6.2 服務端處理讀寫請求 348
6.2.1 副本管理器 351
6.2.2 分區與副本 362
6.3 延遲操作 373
6.3.1 延遲操作接口 374
6.3.2 延遲操作與延遲緩存 383
6.3.3 延遲緩存 391
6.4 小結 400
第7章 控制器 402
7.1 Kafka控制器 402
7.1.1 控制器選舉 403
7.1.2 控制器上下文 406
7.1.3 ZK監聽器 408
7.1.4 分區狀態機和副本狀態機 410
7.1.5 刪除主題 430
7.1.6 重新分配分區 436
7.1.7 控制器的網絡通道管理器 445
7.2 服務端處理LeaderAndIsr請求 448
7.2.1 創建分區 449
7.2.2 創建主副本、備份副本 451
7.2.3 消費組元數據遷移 463
7.3 元數據緩存 468
7.3.1 服務端的元數據緩存 472
7.3.2 客戶端更新元數據 473
7.4 Kafka服務關閉 483
7.5 小結 487
第8章 基于Kafka構建數據流管道 490
8.1 Kafka集群同步工具:MirrorMaker 490
8.1.1 單機模擬數據同步 491
8.1.2 數據同步的流程 493
8.2 Uber集群同步工具:uReplicator 498
8.2.1 Apache Helix介紹 498
8.2.2 Helix控制器 501
8.2.3 Helix工作節點 504
8.3 Kafka連接器 505
8.3.1 連接器的使用示例 507
8.3.2 開發一個簡單的連接器 510
8.3.3 連接器的架構模型 515
8.3.4 Herder的實現 520
8.3.5 Worker的實現 524
8.3.6 配置存儲與狀態存儲 530
8.3.7 連接器與任務的實現 550
8.4 小結 565
第9章 Kafka流處理 569
9.1 低級Processor API 569
9.1.1 流處理應用程序示例 569
9.1.2 流處理的拓撲 575
9.1.3 流處理的線程模型 580
9.1.4 狀態存儲 613
9.2 高級流式DSL 636
9.2.1 DSL應用程序示例 636
9.2.2 KStream和KTable 638
9.2.3 連接操作 665
9.2.4 窗口操作 672
9.3 小結 684
第10章 高級特性介紹 686
10.1 客戶端配額 686
10.2 消息與時間戳 692
10.3 事務處理 699
10.4 小結 703
1.1 Kafka流式數據平臺 1
1.2 Kafka的基本概念 3
1.2.1 分區模型 3
1.2.2 消費模型 4
1.2.3 分布式模型 5
1.3 Kafka的設計與實現 6
1.3.1 文件系統的持久化與數據傳輸效率 6
1.3.2 生產者與消費者 8
1.3.3 副本機制和容錯處理 10
1.4 快速開始 11
1.4.1 單機模式 12
1.4.2 分布式模式 14
1.4.3 消費組示例 16
1.5 環境準備 18
第2章 生產者 22
2.1 新生產者客戶端 22
2.1.1 同步和異步發送消息 23
2.1.2 客戶端消息發送線程 29
2.1.3 客戶端網絡連接對象 31
2.1.4 選擇器處理網絡請求 35
2.2 舊生產者客戶端 43
2.2.1 事件處理器處理客戶端發送的消息 44
2.2.2 對消息集按照節點和分區進行整理 46
2.2.3 生產者使用阻塞通道發送請求 48
2.3 服務端網絡連接 49
2.3.1 服務端使用接收器接受客戶端的連接 50
2.3.2 處理器使用選擇器的輪詢處理網絡請求 53
2.3.3 請求通道的請求隊列和響應隊列 56
2.3.4 Kafka請求處理線程 58
2.3.5 服務端的請求處理入口 58
2.4 小結 60
第3章 消費者:高級API和低級API 61
3.1 消費者啟動和初始化 67
3.1.1 創建并初始化消費者連接器 69
3.1.2 消費者客戶端的線程模型 70
3.1.3 重新初始化消費者 72
3.2 消費者再平衡操作 73
3.2.1 分區的所有權 74
3.2.2 為消費者分配分區 75
3.2.3 創建分區信息對象 78
3.2.4 關閉和更新拉取線程管理器 80
3.2.5 分區信息對象的偏移量 80
3.3 消費者拉取數據 82
3.3.1 拉取線程管理器 82
3.3.2 抽象拉取線程 87
3.3.3 消費者拉取線程 90
3.4 消費者消費消息 94
3.4.1 Kafka消息流 94
3.4.2 消費者迭代消費消息 95
3.5 消費者提交分區偏移量 97
3.5.1 提交偏移量到ZK 98
3.5.2 提交偏移量到內部主題 99
3.5.3 連接偏移量管理器 101
3.5.4 服務端處理提交偏移量的請求 103
3.5.5 緩存分區的偏移量 106
3.6 消費者低級API示例 108
3.6.1 消息消費主流程 109
3.6.2 找出分區的主副本 112
3.6.3 獲取分區的讀取偏移量 113
3.6.4 發送拉取請求并消費消息 116
3.7 小結 117
3.7.1 消費者線程模型 117
3.7.2 再平衡和分區分配 119
第4章 新消費者 121
4.1 新消費者客戶端 125
4.1.1 消費者的訂閱狀態 125
4.1.2 消費者輪詢的準備工作 134
4.1.3 消費者輪詢的流程 138
4.1.4 消費者拉取消息 146
4.1.5 消費者獲取記錄 149
4.1.6 消費消息 160
4.2 消費者的網絡客戶端輪詢 161
4.2.1 異步請求 162
4.2.2 異步請求高級模式 169
4.2.3 網絡客戶端輪詢 184
4.3 心跳任務 188
4.3.1 發送心跳請求 188
4.3.2 心跳狀態 189
4.3.3 運行心跳任務 191
4.3.4 處理心跳結果的示例 192
4.3.5 心跳和協調者的關系 193
4.4 消費者提交偏移量 195
4.4.1 自動提交任務 195
4.4.2 將拉取偏移量作為提交偏移量 197
4.4.3 同步提交偏移量 201
4.4.4 消費者的消息處理語義 202
4.5 小結 206
第5章 協調者 210
5.1 消費者加入消費組 211
5.1.1 元數據與分區分配器 212
5.1.2 消費者的加入組和同步組 213
5.1.3 主消費者執行分配任務 220
5.1.4 加入組的準備、完成和監聽器 224
5.2 協調者處理請求 229
5.2.1 服務端定義發送響應結果的回調方法 229
5.2.2 消費者和消費組元數據 232
5.2.3 協調者處理請求前的條件檢查 236
5.2.4 協調者調用回調方法發送響應給客戶端 237
5.3 延遲的加入組操作 242
5.3.1 “準備再平衡” 242
5.3.2 延遲操作和延遲緩存 244
5.3.3 嘗試完成延遲的加入操作 246
5.3.4 消費組穩定后,原有消費者重新加入消費組 250
5.3.5 消費組未穩定,原有消費者重新加入消費組 251
5.4 消費組狀態機 254
5.4.1 再平衡操作與監聽器 254
5.4.2 消費組的狀態轉換 262
5.4.3 協調者處理“加入組請求” 264
5.4.4 協調者處理“同步組請求” 274
5.4.5 協調者處理“離開組請求” 276
5.4.6 再平衡超時與會話超時 278
5.4.7 延遲的心跳 282
5.5 小結 290
第6章 存儲層 293
6.1 日志的讀寫 293
6.1.1 分區、副本、日志、日志
分段 294
6.1.2 寫入日志 297
6.1.3 日志分段 305
6.1.4 讀取日志 315
6.1.5 日志管理 329
6.1.6 日志壓縮 336
6.2 服務端處理讀寫請求 348
6.2.1 副本管理器 351
6.2.2 分區與副本 362
6.3 延遲操作 373
6.3.1 延遲操作接口 374
6.3.2 延遲操作與延遲緩存 383
6.3.3 延遲緩存 391
6.4 小結 400
第7章 控制器 402
7.1 Kafka控制器 402
7.1.1 控制器選舉 403
7.1.2 控制器上下文 406
7.1.3 ZK監聽器 408
7.1.4 分區狀態機和副本狀態機 410
7.1.5 刪除主題 430
7.1.6 重新分配分區 436
7.1.7 控制器的網絡通道管理器 445
7.2 服務端處理LeaderAndIsr請求 448
7.2.1 創建分區 449
7.2.2 創建主副本、備份副本 451
7.2.3 消費組元數據遷移 463
7.3 元數據緩存 468
7.3.1 服務端的元數據緩存 472
7.3.2 客戶端更新元數據 473
7.4 Kafka服務關閉 483
7.5 小結 487
第8章 基于Kafka構建數據流管道 490
8.1 Kafka集群同步工具:MirrorMaker 490
8.1.1 單機模擬數據同步 491
8.1.2 數據同步的流程 493
8.2 Uber集群同步工具:uReplicator 498
8.2.1 Apache Helix介紹 498
8.2.2 Helix控制器 501
8.2.3 Helix工作節點 504
8.3 Kafka連接器 505
8.3.1 連接器的使用示例 507
8.3.2 開發一個簡單的連接器 510
8.3.3 連接器的架構模型 515
8.3.4 Herder的實現 520
8.3.5 Worker的實現 524
8.3.6 配置存儲與狀態存儲 530
8.3.7 連接器與任務的實現 550
8.4 小結 565
第9章 Kafka流處理 569
9.1 低級Processor API 569
9.1.1 流處理應用程序示例 569
9.1.2 流處理的拓撲 575
9.1.3 流處理的線程模型 580
9.1.4 狀態存儲 613
9.2 高級流式DSL 636
9.2.1 DSL應用程序示例 636
9.2.2 KStream和KTable 638
9.2.3 連接操作 665
9.2.4 窗口操作 672
9.3 小結 684
第10章 高級特性介紹 686
10.1 客戶端配額 686
10.2 消息與時間戳 692
10.3 事務處理 699
10.4 小結 703
展開全部
Kafka技術內幕-圖文詳解Kafka源碼設計與實現 作者簡介
鄭奇煌,目前就職于杭州某互聯網風控公司,主要專注于大數據和流計算。對源碼研究有一定的心得體會,樂于分享,個人博客:zqhxuyuan.github.io。
書友推薦
- >
名家帶你讀魯迅:朝花夕拾
- >
莉莉和章魚
- >
姑媽的寶刀
- >
詩經-先民的歌唱
- >
煙與鏡
- >
史學評論
- >
自卑與超越
- >
二體千字文
本類暢銷