注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫(kù)Kafka技術(shù)內(nèi)幕:圖文詳解Kafka源碼設(shè)計(jì)與實(shí)現(xiàn)

Kafka技術(shù)內(nèi)幕:圖文詳解Kafka源碼設(shè)計(jì)與實(shí)現(xiàn)

Kafka技術(shù)內(nèi)幕:圖文詳解Kafka源碼設(shè)計(jì)與實(shí)現(xiàn)

定 價(jià):¥119.00

作 者: 鄭奇煌 著
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈原創(chuàng)
標(biāo) 簽: 暫缺

ISBN: 9787115469380 出版時(shí)間: 2017-11-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 703 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  Kafka自LinkedIn開源以來(lái)就以高性能、高吞吐量、分布式的特性著稱,本書以0.10版本的源碼為基礎(chǔ),深入分析了Kafka的設(shè)計(jì)與實(shí)現(xiàn),包括生產(chǎn)者和消費(fèi)者的消息處理流程,新舊消費(fèi)者不同的設(shè)計(jì)方式,存儲(chǔ)層的實(shí)現(xiàn),協(xié)調(diào)者和控制器如何確保Kafka集群的分布式和容錯(cuò)特性,兩種同步集群工具M(jìn)irrorMaker和uReplicator,流處理的兩種API以及Kafka的一些高級(jí)特性等?!禟afka技術(shù)內(nèi)幕 圖文詳解Kafka源碼設(shè)計(jì)與實(shí)現(xiàn)》適合Kafka開發(fā)人員閱讀。

作者簡(jiǎn)介

  鄭奇煌,目前就職于杭州某互聯(lián)網(wǎng)風(fēng)控公司,主要專注于大數(shù)據(jù)和流計(jì)算。對(duì)源碼研究有一定的心得體會(huì),樂于分享,個(gè)人博客:zqhxuyuan.github.io。

圖書目錄

第1章 Kafka入門 1
1.1 Kafka流式數(shù)據(jù)平臺(tái) 1
1.2 Kafka的基本概念 3
1.2.1 分區(qū)模型 3
1.2.2 消費(fèi)模型 4
1.2.3 分布式模型 5
1.3 Kafka的設(shè)計(jì)與實(shí)現(xiàn) 6
1.3.1 文件系統(tǒng)的持久化與數(shù)據(jù)傳輸效率 6
1.3.2 生產(chǎn)者與消費(fèi)者 8
1.3.3 副本機(jī)制和容錯(cuò)處理 10
1.4 快速開始 11
1.4.1 單機(jī)模式 12
1.4.2 分布式模式 14
1.4.3 消費(fèi)組示例 16
1.5 環(huán)境準(zhǔn)備 18
第2章 生產(chǎn)者 22
2.1 新生產(chǎn)者客戶端 22
2.1.1 同步和異步發(fā)送消息 23
2.1.2 客戶端消息發(fā)送線程 29
2.1.3 客戶端網(wǎng)絡(luò)連接對(duì)象 31
2.1.4 選擇器處理網(wǎng)絡(luò)請(qǐng)求 35
2.2 舊生產(chǎn)者客戶端 43
2.2.1 事件處理器處理客戶端發(fā)送的消息 44
2.2.2 對(duì)消息集按照節(jié)點(diǎn)和分區(qū)進(jìn)行整理 46
2.2.3 生產(chǎn)者使用阻塞通道發(fā)送請(qǐng)求 48
2.3 服務(wù)端網(wǎng)絡(luò)連接 49
2.3.1 服務(wù)端使用接收器接受客戶端的連接 50
2.3.2 處理器使用選擇器的輪詢處理網(wǎng)絡(luò)請(qǐng)求 53
2.3.3 請(qǐng)求通道的請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列 56
2.3.4 Kafka請(qǐng)求處理線程 58
2.3.5 服務(wù)端的請(qǐng)求處理入口 58
2.4 小結(jié) 60
第3章 消費(fèi)者:高級(jí)API和低級(jí)API 61
3.1 消費(fèi)者啟動(dòng)和初始化 67
3.1.1 創(chuàng)建并初始化消費(fèi)者連接器 69
3.1.2 消費(fèi)者客戶端的線程模型 70
3.1.3 重新初始化消費(fèi)者 72
3.2 消費(fèi)者再平衡操作 73
3.2.1 分區(qū)的所有權(quán) 74
3.2.2 為消費(fèi)者分配分區(qū) 75
3.2.3 創(chuàng)建分區(qū)信息對(duì)象 78
3.2.4 關(guān)閉和更新拉取線程管理器 80
3.2.5 分區(qū)信息對(duì)象的偏移量 80
3.3 消費(fèi)者拉取數(shù)據(jù) 82
3.3.1 拉取線程管理器 82
3.3.2 抽象拉取線程 87
3.3.3 消費(fèi)者拉取線程 90
3.4 消費(fèi)者消費(fèi)消息 94
3.4.1 Kafka消息流 94
3.4.2 消費(fèi)者迭代消費(fèi)消息 95
3.5 消費(fèi)者提交分區(qū)偏移量 97
3.5.1 提交偏移量到ZK 98
3.5.2 提交偏移量到內(nèi)部主題 99
3.5.3 連接偏移量管理器 101
3.5.4 服務(wù)端處理提交偏移量的請(qǐng)求 103
3.5.5 緩存分區(qū)的偏移量 106
3.6 消費(fèi)者低級(jí)API示例 108
3.6.1 消息消費(fèi)主流程 109
3.6.2 找出分區(qū)的主副本 112
3.6.3 獲取分區(qū)的讀取偏移量 113
3.6.4 發(fā)送拉取請(qǐng)求并消費(fèi)消息 116
3.7 小結(jié) 117
3.7.1 消費(fèi)者線程模型 117
3.7.2 再平衡和分區(qū)分配 119
第4章 新消費(fèi)者 121
4.1 新消費(fèi)者客戶端 125
4.1.1 消費(fèi)者的訂閱狀態(tài) 125
4.1.2 消費(fèi)者輪詢的準(zhǔn)備工作 134
4.1.3 消費(fèi)者輪詢的流程 138
4.1.4 消費(fèi)者拉取消息 146
4.1.5 消費(fèi)者獲取記錄 149
4.1.6 消費(fèi)消息 160
4.2 消費(fèi)者的網(wǎng)絡(luò)客戶端輪詢 161
4.2.1 異步請(qǐng)求 162
4.2.2 異步請(qǐng)求高級(jí)模式 169
4.2.3 網(wǎng)絡(luò)客戶端輪詢 184
4.3 心跳任務(wù) 188
4.3.1 發(fā)送心跳請(qǐng)求 188
4.3.2 心跳狀態(tài) 189
4.3.3 運(yùn)行心跳任務(wù) 191
4.3.4 處理心跳結(jié)果的示例 192
4.3.5 心跳和協(xié)調(diào)者的關(guān)系 193
4.4 消費(fèi)者提交偏移量 195
4.4.1 自動(dòng)提交任務(wù) 195
4.4.2 將拉取偏移量作為提交偏移量 197
4.4.3 同步提交偏移量 201
4.4.4 消費(fèi)者的消息處理語(yǔ)義 202
4.5 小結(jié) 206
第5章 協(xié)調(diào)者 210
5.1 消費(fèi)者加入消費(fèi)組 211
5.1.1 元數(shù)據(jù)與分區(qū)分配器 212
5.1.2 消費(fèi)者的加入組和同步組 213
5.1.3 主消費(fèi)者執(zhí)行分配任務(wù) 220
5.1.4 加入組的準(zhǔn)備、完成和監(jiān)聽器 224
5.2 協(xié)調(diào)者處理請(qǐng)求 229
5.2.1 服務(wù)端定義發(fā)送響應(yīng)結(jié)果的回調(diào)方法 229
5.2.2 消費(fèi)者和消費(fèi)組元數(shù)據(jù) 232
5.2.3 協(xié)調(diào)者處理請(qǐng)求前的條件檢查 236
5.2.4 協(xié)調(diào)者調(diào)用回調(diào)方法發(fā)送響應(yīng)給客戶端 237
5.3 延遲的加入組操作 242
5.3.1 “準(zhǔn)備再平衡” 242
5.3.2 延遲操作和延遲緩存 244
5.3.3 嘗試完成延遲的加入操作 246
5.3.4 消費(fèi)組穩(wěn)定后,原有消費(fèi)者重新加入消費(fèi)組 250
5.3.5 消費(fèi)組未穩(wěn)定,原有消費(fèi)者重新加入消費(fèi)組 251
5.4 消費(fèi)組狀態(tài)機(jī) 254
5.4.1 再平衡操作與監(jiān)聽器 254
5.4.2 消費(fèi)組的狀態(tài)轉(zhuǎn)換 262
5.4.3 協(xié)調(diào)者處理“加入組請(qǐng)求” 264
5.4.4 協(xié)調(diào)者處理“同步組請(qǐng)求” 274
5.4.5 協(xié)調(diào)者處理“離開組請(qǐng)求” 276
5.4.6 再平衡超時(shí)與會(huì)話超時(shí) 278
5.4.7 延遲的心跳 282
5.5 小結(jié) 290
第6章 存儲(chǔ)層 293
6.1 日志的讀寫 293
6.1.1 分區(qū)、副本、日志、日志
分段 294
6.1.2 寫入日志 297
6.1.3 日志分段 305
6.1.4 讀取日志 315
6.1.5 日志管理 329
6.1.6 日志壓縮 336
6.2 服務(wù)端處理讀寫請(qǐng)求 348
6.2.1 副本管理器 351
6.2.2 分區(qū)與副本 362
6.3 延遲操作 373
6.3.1 延遲操作接口 374
6.3.2 延遲操作與延遲緩存 383
6.3.3 延遲緩存 391
6.4 小結(jié) 400
第7章 控制器 402
7.1 Kafka控制器 402
7.1.1 控制器選舉 403
7.1.2 控制器上下文 406
7.1.3 ZK監(jiān)聽器 408
7.1.4 分區(qū)狀態(tài)機(jī)和副本狀態(tài)機(jī) 410
7.1.5 刪除主題 430
7.1.6 重新分配分區(qū) 436
7.1.7 控制器的網(wǎng)絡(luò)通道管理器 445
7.2 服務(wù)端處理LeaderAndIsr請(qǐng)求 448
7.2.1 創(chuàng)建分區(qū) 449
7.2.2 創(chuàng)建主副本、備份副本 451
7.2.3 消費(fèi)組元數(shù)據(jù)遷移 463
7.3 元數(shù)據(jù)緩存 468
7.3.1 服務(wù)端的元數(shù)據(jù)緩存 472
7.3.2 客戶端更新元數(shù)據(jù) 473
7.4 Kafka服務(wù)關(guān)閉 483
7.5 小結(jié) 487
第8章 基于Kafka構(gòu)建數(shù)據(jù)流管道 490
8.1 Kafka集群同步工具:MirrorMaker 490
8.1.1 單機(jī)模擬數(shù)據(jù)同步 491
8.1.2 數(shù)據(jù)同步的流程 493
8.2 Uber集群同步工具:uReplicator 498
8.2.1 Apache Helix介紹 498
8.2.2 Helix控制器 501
8.2.3 Helix工作節(jié)點(diǎn) 504
8.3 Kafka連接器 505
8.3.1 連接器的使用示例 507
8.3.2 開發(fā)一個(gè)簡(jiǎn)單的連接器 510
8.3.3 連接器的架構(gòu)模型 515
8.3.4 Herder的實(shí)現(xiàn) 520
8.3.5 Worker的實(shí)現(xiàn) 524
8.3.6 配置存儲(chǔ)與狀態(tài)存儲(chǔ) 530
8.3.7 連接器與任務(wù)的實(shí)現(xiàn) 550
8.4 小結(jié) 565
第9章 Kafka流處理 569
9.1 低級(jí)Processor API 569
9.1.1 流處理應(yīng)用程序示例 569
9.1.2 流處理的拓?fù)?575
9.1.3 流處理的線程模型 580
9.1.4 狀態(tài)存儲(chǔ) 613
9.2 高級(jí)流式DSL 636
9.2.1 DSL應(yīng)用程序示例 636
9.2.2 KStream和KTable 638
9.2.3 連接操作 665
9.2.4 窗口操作 672
9.3 小結(jié) 684
第10章 高級(jí)特性介紹 686
10.1 客戶端配額 686
10.2 消息與時(shí)間戳 692
10.3 事務(wù)處理 699
10.4 小結(jié) 703

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)