定 價(jià):¥69.00
作 者: | 牟大恩 |
出版社: | 人民郵電出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 編程語(yǔ)言與程序設(shè)計(jì) 計(jì)算機(jī)?網(wǎng)絡(luò) |
ISBN: | 9787115469571 | 出版時(shí)間: | 2017-11-01 | 包裝: | |
開(kāi)本: | 頁(yè)數(shù): | 字?jǐn)?shù): |
第1章 Kafka簡(jiǎn)介 1
1.1 Kafka背景 1
1.2 Kafka基本結(jié)構(gòu) 2
1.3 Kafka基本概念 2
1.4 Kafka設(shè)計(jì)概述 6
1.4.1 Kafka設(shè)計(jì)動(dòng)機(jī) 6
1.4.2 Kafka特性 6
1.4.3 Kafka應(yīng)用場(chǎng)景 8
1.5 本書導(dǎo)讀 9
1.6 小結(jié) 9
第2章 Kafka安裝配置 11
2.1 基礎(chǔ)環(huán)境配置 11
2.1.1 JDK安裝配置 11
2.1.2 SSH安裝配置 13
2.1.3 ZooKeeper環(huán)境 15
2.2 Kafka單機(jī)環(huán)境部署 18
2.2.1 Windows環(huán)境安裝Kafka 19
2.2.2 Linux環(huán)境安裝Kafka 19
2.3 Kafka偽分布式環(huán)境部署 21
2.4 Kafka集群環(huán)境部署 22
2.5 Kafka Manager安裝 22
2.6 Kafka源碼編譯 25
2.6.1 Scala安裝配置 25
2.6.2 Gradle安裝配置 26
2.6.3 Kafka源碼編譯 26
2.6.4 Kafka導(dǎo)入Eclipse 30
2.7 小結(jié) 31
第3章 Kafka核心組件 33
3.1 延遲操作組件 33
3.1.1 DelayedOperation 33
3.1.2 DelayedOperationPurgatory 35
3.1.3 DelayedProduce 36
3.1.4 DelayedFetch 38
3.1.5 DelayedJoin 38
3.1.6 DelayedHeartbeat 39
3.1.7 DelayedCreateTopics 40
3.2 控制器 40
3.2.1 控制器初始化 41
3.2.2 控制器選舉過(guò)程 46
3.2.3 故障轉(zhuǎn)移 48
3.2.4 代理上線與下線 49
3.2.5 主題管理 51
3.2.6 分區(qū)管理 54
3.3 協(xié)調(diào)器 58
3.3.1 消費(fèi)者協(xié)調(diào)器 58
3.3.2 組協(xié)調(diào)器 60
3.4 網(wǎng)絡(luò)通信服務(wù) 64
3.4.1 Acceptor 65
3.4.2 Processor 66
3.4.3 RequestChannel 68
3.4.4 SocketServer啟動(dòng)過(guò)程 69
3.5 日志管理器 70
3.5.1 Kafka日志結(jié)構(gòu) 70
3.5.2 日志管理器啟動(dòng)過(guò)程 77
3.5.3 日志加載及恢復(fù) 79
3.5.4 日志清理 80
3.6 副本管理器 84
3.6.1 分區(qū) 86
3.6.2 副本 88
3.6.3 副本管理器啟動(dòng)過(guò)程 89
3.6.4 副本過(guò)期檢查 90
3.6.5 追加消息 92
3.6.6 拉取消息 95
3.6.7 副本同步過(guò)程 97
3.6.8 副本角色轉(zhuǎn)換 99
3.6.9 關(guān)閉副本 101
3.7 Handler 103
3.8 動(dòng)態(tài)配置管理器 104
3.9 代理健康檢測(cè) 106
3.10 Kafka內(nèi)部監(jiān)控 107
3.11 小結(jié) 110
第4章 Kafka核心流程分析 111
4.1 KafkaServer啟動(dòng)流程分析 111
4.2 創(chuàng)建主題流程分析 115
4.2.1 客戶端創(chuàng)建主題 115
4.2.2 分區(qū)副本分配 117
4.3 生產(chǎn)者 121
4.3.1 Eclipse運(yùn)行生產(chǎn)者源碼 121
4.3.2 生產(chǎn)者重要配置說(shuō)明 123
4.3.3 OldProducer執(zhí)行流程 124
4.3.4 KafkaProducer實(shí)現(xiàn)原理 127
4.4 消費(fèi)者 140
4.4.1 舊版消費(fèi)者 140
4.4.2 KafkaConsumer初始化 140
4.4.3 消費(fèi)訂閱 144
4.4.4 消費(fèi)消息 145
4.4.5 消費(fèi)偏移量提交 149
4.4.6 心跳探測(cè) 150
4.4.7 分區(qū)數(shù)與消費(fèi)者線程的關(guān)系 151
4.4.8 消費(fèi)者平衡過(guò)程 153
4.5 小結(jié) 154
第5章 Kafka基本操作實(shí)戰(zhàn) 155
5.1 KafkaServer管理 155
5.1.1 啟動(dòng)Kafka單個(gè)節(jié)點(diǎn) 155
5.1.2 啟動(dòng)Kafka集群 159
5.1.3 關(guān)閉Kafka單個(gè)節(jié)點(diǎn) 160
5.1.4 關(guān)閉Kafka集群 161
5.2 主題管理 162
5.2.1 創(chuàng)建主題 162
5.2.2 刪除主題 164
5.2.3 查看主題 165
5.2.4 修改主題 166
5.3 生產(chǎn)者基本操作 168
5.3.1 啟動(dòng)生產(chǎn)者 168
5.3.2 創(chuàng)建主題 169
5.3.3 查看消息 170
5.3.4 生產(chǎn)者性能測(cè)試工具 170
5.4 消費(fèi)者基本操作 174
5.4.1 消費(fèi)消息 174
5.4.2 單播與多播 179
5.4.3 查看消費(fèi)偏移量 181
5.4.4 消費(fèi)者性能測(cè)試工具 183
5.5 配置管理 183
5.5.1 主題級(jí)別配置 184
5.5.2 代理級(jí)別設(shè)置 185
5.5.3 客戶端/用戶級(jí)別配置 187
5.6 分區(qū)操作 188
5.6.1 分區(qū)Leader平衡 188
5.6.2 分區(qū)遷移 190
5.6.3 增加分區(qū) 194
5.6.4 增加副本 195
5.7 連接器基本操作 198
5.7.1 獨(dú)立模式 198
5.7.2 REST風(fēng)格API應(yīng)用 201
5.7.3 分布式模式 204
5.8 Kafka Manager應(yīng)用 209
5.9 Kafka安全機(jī)制 211
5.9.1 利用SASL/PLAIN進(jìn)行身份認(rèn)證 212
5.9.2 權(quán)限控制 215
5.10 鏡像操作 218
5.11 小結(jié) 219
第6章 Kafka API編程實(shí)戰(zhàn) 221
6.1 主題管理 222
6.1.1 創(chuàng)建主題 222
6.1.2 修改主題級(jí)別配置 223
6.1.3 增加分區(qū) 224
6.1.4 分區(qū)副本重分配 224
6.1.5 刪除主題 225
6.2 生產(chǎn)者API應(yīng)用 225
6.2.1 單線程生產(chǎn)者 226
6.2.2 多線程生產(chǎn)者 231
6.3 消費(fèi)者API應(yīng)用 233
6.3.1 舊版消費(fèi)者API應(yīng)用 233
6.3.2 新版消費(fèi)者API應(yīng)用 239
6.4 自定義組件實(shí)現(xiàn) 247
6.4.1 分區(qū)器 247
6.4.2 序列化與反序列化 249
6.5 Spring與Kafka整合應(yīng)用 257
6.5.1 生產(chǎn)者 259
6.5.2 消費(fèi)者 263
6.6 小結(jié) 266
第7章 Kafka Streams 267
7.1 Kafka Streams簡(jiǎn)介 267
7.2 Kafka Streams基本概念 268
7.2.1 流 268
7.2.2 流處理器 268
7.2.3 處理器拓?fù)?nbsp;268
7.2.4 時(shí)間 269
7.2.5 狀態(tài) 270
7.2.6 KStream和KTable 270
7.2.7 窗口 271
7.3 Kafka Streams API介紹 272
7.3.1 KStream與KTable 272
7.3.2 窗口操作 274
7.3.3 連接操作 275
7.3.4 變換操作 277
7.3.5 聚合操作 279
7.4 接口惡意訪問(wèn)自動(dòng)檢測(cè) 281
7.4.1 應(yīng)用描述 281
7.4.2 具體實(shí)現(xiàn) 282
7.5 小結(jié) 285
第8章 Kafka數(shù)據(jù)采集應(yīng)用 287
8.1 Log4j集成Kafka應(yīng)用 287
8.1.1 應(yīng)用描述 287
8.1.2 具體實(shí)現(xiàn) 287
8.2 Kafka與Flume整合應(yīng)用 289
8.2.1 Flume簡(jiǎn)介 290
8.2.2 Flume與Kafka比較 291
8.2.3 Flume的安裝配置 291
8.2.4 Flume采集日志寫入Kafka 293
8.3 Kafka與Flume和HDFS整合應(yīng)用 294
8.3.1 Hadoop安裝配置 295
8.3.2 Flume采集Kafka消息寫入HDFS 298
8.4 小結(jié) 301
第9章 Kafka與ELK整合應(yīng)用 303
9.1 ELK環(huán)境搭建 304
9.1.1 Elasticsearch安裝配置 304
9.1.2 Logstash安裝配置 307
9.1.3 Kibana安裝配置 308
9.2 Kafka與Logstash整合 309
9.2.1 Logstash收集日志到Kafka 309
9.2.2 Logstash從Kafka消費(fèi)日志 310
9.3 日志采集分析系統(tǒng) 312
9.3.1 Flume采集日志配置 312
9.3.2 Logstash拉取日志配置 313
9.3.3 Kibana日志展示 314
9.4 服務(wù)器性能監(jiān)控系統(tǒng) 315
9.4.1 Metricbeat安裝 316
9.4.2 采集信息存儲(chǔ)到Elasticsearch 316
9.4.3 加載beats-dashboards 318
9.4.4 服務(wù)器性能監(jiān)控系統(tǒng)具體實(shí)現(xiàn) 318
9.5 小結(jié) 321
第10章 Kafka與Spark整合應(yīng)用 323
10.1 Spark簡(jiǎn)介 323
10.2 Spark基本操作 324
10.2.1 Spark安裝 325
10.2.2 Spark shell應(yīng)用 326
10.2.3 spark-submit提交作業(yè) 327
10.3 Spark在智能投顧領(lǐng)域應(yīng)用 328
10.3.1 應(yīng)用描述 328
10.3.2 具體實(shí)現(xiàn) 329
10.4 熱搜詞統(tǒng)計(jì) 334
10.4.1 應(yīng)用描述 334
10.4.2 具體實(shí)現(xiàn) 335
10.5 小結(jié) 340