Kafka 進階

趙渝強

  • 出版商: 電子工業
  • 出版日期: 2022-02-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 240
  • ISBN: 7121426536
  • ISBN-13: 9787121426537
  • 相關分類: Message Queue
  • 立即出貨 (庫存 < 4)

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

商品描述

本書基於作者多年的教學與實踐進行編寫,重點介紹Kafka消息系統的核心原理與架構,內容涉及開發、運維、管理與架構。全書共11章,第1章,介紹Kafka體系架構基礎,包括消息系統的基本知識、Kafka的體系架構與ZooKeeper;第2章,介紹Kafka的環境部署,以及基本的應用程序開發;第3章,介紹Kafka的生產者及其運行機制,包括生產者的創建和執行過程、生產者的消息發送模式和生產者的高級特性等;第4章,介紹Kafka的消費者及其運行機制,包括消費者的消費模式、消費者組與消費者、消費者的偏移量與提交及消費者的高級特性等;第5章,介紹Kafka服務器端的核心原理,包括主題與分區、消息的持久性與傳輸保障、Kafka配額與日誌的管理;第6章,介紹Kafka的流處理引擎Kafka Stream;第7章,介紹使用不同的工具監控Kafka,包括Kafka Manager、Kafka Tool、KafkaOffsetMonitor和JConsole;第8章至第11章,介紹Kafka與外部系統的集成,包括集成Flink、集成Storm、集成Spark和集成Flume。

目錄大綱

第1章 Kafka體系架構基礎 1 1.1 什麽是消息系統 1 1.2 消息系統的分類 2 1.2.1 同步消息機制與異步消息機制 3 1.2.2 隊列與主題 4 1.3 Kafka的體系架構 5 1.3.1 消息服務器 6 1.3.2 主題、分區與副本 6 1.3.3 生產者 7 1.3.4 消費者與消費者組 8 1.4 分佈式協調服務ZooKeeper 9 1.4.1 ZooKeeper集群的架構 9 1.4.2 ZooKeeper的節點類型 10 1.4.3 ZooKeeper的觀察機制 13 1.4.4 ZooKeeper的分佈式鎖 14 1.4.5 ZooKeeper在Kafka中的作用 17 1.5 準備實驗環境 17 1.5.1 安裝CentOS操作系統 17 1.5.2 配置CentOS操作系統 23 1.5.3 安裝JDK 24 第2章 部署Kafka 25 2.1 部署ZooKeeper 25 2.1.1 ZooKeeper的核心配置文件 26 2.1.2 部署ZooKeeper的Standalone模式 28 2.1.3 部署ZooKeeper的集群模式 32 2.1.4 測試ZooKeeper集群 35 2.2 安裝部署Kafka 36 2.2.1 單機單Broker的部署 40 2.2.2 單機多Broker的部署 42 2.2.3 多機多Broker的部署 43 2.2.4 使用命令行測試Kafka 44 2.3 Kafka配置參數詳解 45 2.4 Kafka在ZooKeeper中保存的數據 46 2.5 開發客戶端程序測試Kafka 47 2.5.1 開發Java版本的客戶端程序 48 2.5.2 開發Scala版本的客戶端程序 50 第3章 Kafka的生產者 53 3.1 Kafka生產者的執行過程 53 3.2 創建Kafka生產者 54 3.2.1 創建基本的消息生產者 54 3.2.2 發送自定義消息對象 55 3.3 生產者的消息發送模式 60 3.4 生產者的高級特性 61 3.4.1 生產者分區機制 61 3.4.2 生產者壓縮機制 66 3.4.3 生產者攔截器 67 3.5 生產者的參數配置 71 第4章 Kafka的消費者 77 4.1 Kafka消費者的消費模式 77 4.1.1 消息的推送模式 77 4.1.2 消息的拉取模式 77 4.1.3 推送模式與拉取模式的區別 78 4.1.4 消息者組 78 4.2 創建Kafka消費者 79 4.2.1 創建基本的消息消費者 79 4.2.2 接收自定義消息對象 80 4.3 消費者與消費者組 82 4.3.1 消費者和消費者組與分區的關系 82 4.3.2 分區的重平衡 85 4.4 消費者的偏移量與提交 86 4.4.1 偏移量與重平衡 86 4.4.2 偏移量的提交方式 87 4.5 消費者的高級特性 90 4.5.1 消費者的分區策略 90 4.5.2 重平衡監聽器 93 4.5.3 消費者的攔截器 95 4.5.4 消費者的優雅退出 97 4.6 消費者的參數配置 98 第5章 Kafka的服務器端 102 5.1 主題與分區 102 5.1.1 主題和分區的關系 102 5.1.2 主題的管理 103 5.1.3 使用KafkaAdminClient 109 5.2 消息的持久性 111 5.2.1 Kafka消息持久性概述 111 5.2.2 Kafka的持久化原理解析 112 5.2.3 持久化的讀寫流程 114 5.2.4 為什麽要建立分段和索引 115 5.3 消息的傳輸保障 115 5.3.1 生產者的ack機制 115 5.3.2 消費者與高水位線 116 5.4 副本和Leader副本的選舉 117 5.5 Kafka配額的管理 118 5.6 Kafka的日誌刪除與壓縮 120 5.6.1 日誌的刪除 120 5.6.2 日誌的壓縮 120 5.6.3 清理的實現細節 120 5.7 Kafka與ZooKeeper 123 5.7.1 ZooKeeper扮演的角色 123 5.7.2 Kafka在ZooKeeper中存儲的數據 124 5.8 服務器端參數設置 125 第6章 流處理引擎Kafka Stream 130 6.1 Kafka Stream的體系架構 130 6.1.1 為什麽需要Kafka Stream 130 6.1.2 Kafka Stream的體系架構 131 6.1.3 執行Kafka Stream示例程序 132 6.2 開發自己的Kafka Stream應用程序 134 6.3 Kafka Stream中的數據模型 139 6.3.1 KStream與KTable 139 6.3.2 狀態管理 141 6.4 Kafka Stream中的窗口計算 144 6.4.1 時間 144 6.4.2 窗口 145 第7章 監控Kafka 151 7.1 Kafka的監控指標 151 7.2 使用Kafka客戶端監控工具 153 7.2.1 Kafka Manager 153 7.2.2 Kafka Tool 157 7.2.3 KafkaOffsetMonitor 162 7.2.4 JConsole 163 7.3 監控ZooKeeper 166 第8章 Kafka與Flink集成 168 8.1 Flink的體系架構 168 8.1.1 Flink中的數據集 168 8.1.2 Flink的生態圈體系 169 8.1.3 Flink的體系架構 171 8.2 安裝部署Flink Standalone模式 172 8.2.1 Flink Standalone模式的部署 174 8.2.2 在Standalone模式上執行Flink任務 178 8.3 Flink DataSet API算子 181 8.4 Flink DataStream API算子 191 8.5 集成Flink與Kafka 196 8.5.1 將Kafka作為Flink的Source Connector 197 8.5.2 將Kafka作為Flink的Sink Connector 200 第9章 Kafka與Storm集成 203 9.1 離線計算與流式計算 203 9.2 Apache Storm的體系架構 205 9.3 部署Apache Storm 207 9.3.1 部署Storm的偽分佈模式 209 9.3.2 部署Storm的全分佈模式 213 9.3.3 Storm HA模式 216 9.4 執行Apache Storm任務 220 9.4.1 執行WordCountTopology 220 9.4.2 Storm的其他管理命令 224 9.5 開發自己的Storm任務 224 9.5.1 Storm Topology任務處理的數據模型 224 9.5.2 開發自己的WordCountTopology任務 226 9.6 集成Kafka與Storm 232 9.6.1 Storm從Kafka中接收數據 233 9.6.2 測試Kafka與Storm的集成 236 9.6.3 Storm將數據輸出到Kafka 238 第10章 Kafka與Spark集成 240 10.1 Spark基礎 240 10.1.1 Spark的特點 241 10.1.2 Spark的體系架構 242 10.2 安裝部署Spark環境 243 10.2.1 偽分佈模式的單節點環境部署 246 10.2.2 全分佈模式的環境安裝部署 248 10.3 執行Spark任務 249 10.3.1 使用spark-submit提交任務 249 10.3.2 交互式命令行工具spark-shell 251 10.4 Spark的核心編程模型 256 10.4.1 什麽是RDD 256 10.4.2 RDD的算子 257 10.4.3 開發自己的WordCount程序 260 10.5 流式計算引擎Spark Streaming 264 10.5.1 什麽是Spark Streaming 264 10.5.2 離散流 265 10.5.3 開發自己的Spark Streaming程序 266 10.6 集成Kafka與Spark Streaming 269 10.6.1 基於Receiver的方式 269 10.6.2 直接讀取的方式 271 第11章 Kafka與Flume集成 274 11.1 Apache Flume基礎 274 11.1.1 Apache Flume的體系架構 274 11.1.2 Apache Flume的安裝和部署 278 11.2 Flume的Source組件 280 11.3 Flume的Channel組件 282 11.4 Flume的Sink組件 283 11.5 集成Kafka與Flume 287