Kafka 入門與實踐 Kafka入门与实践

牟大恩

  • 出版商: 人民郵電
  • 出版日期: 2017-11-01
  • 售價: $414
  • 貴賓價: 9.5$393
  • 語言: 簡體中文
  • 頁數: 340
  • 裝訂: 平裝
  • ISBN: 7115469571
  • ISBN-13: 9787115469571
  • 相關分類: Message Queue
  • 立即出貨

買這商品的人也買了...

商品描述

《Kafka入門與實踐》以Kafka 0.10.1.1版本以基礎,對Kafka的基本組件的實現細節及其基本應用進行了詳細介紹,同時,通過對Kafka與當前大數據主流框架整合應用案例的講解,進一步展現了Kafka在實際業務中的作用和地位。本書共10章,按照從抽象到具體、從點到線再到面的學習思維模式,由淺入深,理論與實踐相結合,對Kafka進行了分析講解。

書中的大量實例來源於作者在實際工作中的實踐,具有現實指導意義。相信讀者閱讀完本書之後,能夠全面掌握Kafka的基本實現原理及其基本操作,能夠根據書中的案例舉一反三,解決實際工作和學習中的問題。此外,在閱讀本書時,讀者可以根據本書對Kafka理論的分析,再結合Kafka源碼進行定位學習,瞭解Kafka的設計和思想以及更多的編碼技巧。

適合應用Kafka的專業技術人員閱讀,包括但不限於大數據相關應用的開發者、運維者和愛好者,也適合高等院校、培訓結構相關專業的師生使用。

作者簡介

牟大恩

武漢大學碩士,曾先後在網易杭州研究院、掌門科技、優酷土豆集團擔任高級開發工程師和資深開發工程師職務,目前就職於海通證券總部。有多年的Java開發及系統設計經驗,專注於互聯網金融及大數據應用相關領域。

目錄大綱

第1章Kafka簡介1 
1.1 Kafka背景1 
1.2 Kafka基本結構2 
1.3 Kafka基本概念2 
1.4 Kafka設計概述6 
1.4.1 Kafka設計動機6 
1.4.2 Kafka特性6 
1.4.3 Kafka應用場景8 
1.5本書導讀9 
1.6小結9 

第2章Kafka安裝配置11 
2.1基礎環境配置11 
2.1.1 JDK安裝配置11 
2.1.2 SSH安裝配置13 
2.1.3 ZooKeeper環境15 
2.2 Kafka單機環境部署18 
2.2.1 Windows環境安裝Kafka 19 
2.2 .2 Linux環境安裝Kafka 19 
2.3 Kafka偽分佈式環境部署21 
2.4 Kafka集群環境部署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導入Eclipse 30 
2.7小結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控制器選舉過程46 
3.2.3故障轉移48 
3.2.4代理上線與下線49 
3.2.5主題管理51 
3.2.6分區管理54 
3.3協調器58 
3.3.1消費者協調器58 
3.3.2組協調器60 
3.4網絡通信服務64 
3.4.1 Acceptor 65 
3.4.2 Processor 66 
3.4.3 RequestChannel 68 
3.4.4 SocketServer啟動過程69 
3.5日誌管理器70 
3.5.1 Kafka日誌結構70 
3.5.2日誌管理器啟動過程77
3.5.3日誌加載及恢復79 
3.5.4日誌清理80 
3.6副本管理器84 
3.6.1分區86 
3.6.2副本88 
3.6.3副本管理器啟動過程89 
3.6.4副本過期檢查90 
3.6.5追加消息92 
3.6.6拉取消息95 
3.6.7副本同步過程97 
3.6.8副本角色轉換99 
3.6.9關閉副本101 
3.7 Handler 103 
3.8動態配置管理器104 
3.9代理健康檢測106 
3.10 Kafka內部監控107 
3.11小結110 

第4章Kafka核心流程分析111 
4.1 KafkaServer啟動流程分析111 
4.2創建主題流程分析115 
4.2.1客戶端創建主題115 
4.2.2分區副本分配117 
4.3生產者121 
4.3.1 Eclipse運行生產者源碼121 
4.3. 2生產者重要配置說明123 
4.3.3 OldProducer執行流程124 
4.3.4 KafkaProducer實現原理127 
4.4消費者140 
4.4.1舊版消費者140
4.4.2 KafkaConsumer初始化140 
4.4.3消費訂閱144 
4.4.4消費消息145 
4.4.5消費偏移量提交149 
4.4.6心跳探測150 
4.4.7分區數與消費者線程的關係151 
4.4.8消費者平衡過程153 
4.5小結154 

第5章Kafka基本操作實戰155 
5.1 KafkaServer管理155 
5.1.1啟動Kafka單個節點155 
5.1.2啟動Kafka集群159 
5.1.3關閉Kafka單個節點160 
5.1.4關閉Kafka集群161 
5.2主題管理162 
5.2.1創建主題162 
5.2.2刪除主題164 
5.2.3查看主題165 
5.2.4修改主題166 
5.3生產者基本操作168 
5.3.1啟動生產者168 
5.3.2創建主題169 
5.3.3查看消息170 
5.3.4生產者性能測試工具170 
5.4消費者基本操作174 
5.4.1消費消息174 
5.4.2單播與多播179 
5.4.3查看消費偏移量181 
5.4.4消費者性能測試工具183
5.5配置管理183 
5.5.1主題級別配置184 
5.5.2代理級別設置185 
5.5.3客戶端/用戶級別配置187 
5.6分區操作188 
5.6.1分區Leader平衡188 
5.6.2分區遷移190 
5.6.3增加分區194 
5.6.4增加副本195 
5.7連接器基本操作198 
5.7.1獨立模式198 
5.7.2 REST風格API應用201 
5.7.3分佈式模式204 
5.8 Kafka Manager應用209 
5.9 Kafka安全機制211 
5.9.1利用SASL/ PLAIN進行身份認證212 
5.9.2權限控制215 
5.10鏡像操作218 
5.11小結219 

第6章Kafka API編程實戰221 
6.1主題管理222 
6.1.1創建主題222 
6.1.2修改主題級別配置223 
6.1.3增加分區224 
6.1.4分區副本重分配224 
6.1.5刪除主題225 
6.2生產者API應用225 
6.2.1單線程生產者226 
6.2.2多線程生產者231
6.3消費者API應用233 
6.3.1舊版消費者API應用233 
6.3.2新版消費者API應用239 
6.4自定義組件實現247 
6.4.1分區器247 
6.4.2序列化與反序列化249 
6.5 Spring與Kafka整合應用257 
6.5.1生產者259 
6.5.2消費者263 
6.6小結266 

第7章Kafka Streams 267 
7.1 Kafka Streams簡介267 
7.2 Kafka Streams基本概念268 
7.2.1流268 
7.2.2流處理器268 
7.2.3處理器拓撲268 
7.2.4時間269 
7.2.5狀態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接口惡意訪問自動檢測281 
7.4.1應用描述281
7.4.2具體實現282 
7.5小結285 

第8章Kafka數據採集應用287 
8.1 Log4j集成Kafka應用287 
8.1.1應用描述287 
8.1.2具體實現287 
8.2 Kafka與Flume整合應用289 
8.2.1 Flume簡介290 
8.2. 2 Flume與Kafka比較291 
8.2.3 Flume的安裝配置291 
8.2.4 Flume採集日誌寫入Kafka 293 
8.3 Kafka與Flume和HDFS整合應用294 
8.3.1 Hadoop安裝配置295 
8.3.2 Flume採集Kafka消息寫入HDFS 298 
8.4小結301 

第9章Kafka與ELK整合應用303 
9.1 ELK環境搭建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消費日誌310 
9.3日誌採集分析系統312 
9.3.1 Flume採集日誌配置312
9.3.2 Logstash拉取日誌配置313 
9.3.3 Kibana日誌展示314 
9.4服務器性能監控系統315 
9.4.1 Metricbeat安裝316 
9.4.2採集信息存儲到Elasticsearch 316 
9.4.3加載beats-dashboards 318 
9.4.4服務器性能監控系統具體實現318 
9.5小結321 

第10章Kafka與Spark整合應用323 
10.1 Spark簡介323 
10.2 Spark基本操作324 
10.2.1 Spark安裝325 
10.2.2 Spark shell應用326 
10.2.3 spark-submit提交作業327 
10.3 Spark在智能投顧領域應用328 
10.3.1應用描述328 
10.3.2具體實現329 
10.4熱搜詞統計334 
10.4.1應用描述334 
10.4.2具體實現335 
10.5小結340