Kafka并不難學!入門、進階、商業實戰 ( 簡體 字) |
作者:鄧杰 | 類別:1. -> 程式設計 -> Kafka |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 50206 詢問書籍請說出此書號!【有庫存】 NT售價: 445 元 |
出版日:11/1/2018 |
頁數:368 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121352478 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:關注公眾號“哥不是小蘿莉”,回復“KAFKA”,可以獲取教學視頻不、實例素材、實例源文件。 - 本書使用通俗易懂的語言進行講解,從基礎操作到集群管理,再到Kafka底層設計等內容均有涉及。本書具有以下特點。 1.免費提供155分鐘教學視頻 作者按照圖書的內容和結構,錄制了同步對應的教學視頻。既有上課式講解,又有具體的代碼操作。 2.可加入本書QQ學習群提問、交流 加入本群可與千人成為同學,共享資源。 3.通過68個實例進行講解 本書提供了68個實例,將理論講解最終都落實到代碼實現上來。而且,這些實例會伴隨著圖書內容的推進,不斷地趨近于工程化的項目風格,具有很高的應用價值。 4.免費提供實例素材 書中實例用到的素材都已經提供。讀者可以采用這些素材完全再現書中的實例效果。 5.免費提供實例的源文件 在網上已經提供了書中實例的源文件。讀者可以一邊閱讀本書,一邊參照源文件動手練習。這樣不僅能提高學習的效率,還能對書中的知識有更加直觀的認識,從而逐漸培養自己的編碼能力。 6.覆蓋的知識面廣 本書幾乎囊括了Kafka 0.10.2.0版本中的全部功能。讀者在系統學習之后,本書還有查閱的價值。讀者可以把本書當成一本Kafka工具書長期保留在身邊。無論何時何地,只要遇到生僻操作,都可以及時找到說明。 7.采用短段、短句,便于流暢閱讀 本書采用豐富的層次,并采用短小的段落和語句,所以,讀來有順水行舟的輕快感。 8.實例的商業性、應用性強 本書提供的實例多數來源于真正的商業項目,具有高度的參考價值。有些代碼甚至可以直接移植到實際的項目中,進行重復使用。使得“從學到用”這個過程變得更加直接。 |
內容簡介:本書基于Kafka 0.10.2.0以上版本,采用“理論+實踐”的形式編寫。全書共68個實例。全書共分為4篇:第1篇,介紹了消息隊列和Kafka、安裝與配置Kafka環境;第2篇,介紹了Kafka的基礎操作、生產者和消費者、存儲及管理數據;第3篇,介紹了更高級的Kafka知識及應用,包括安全機制、連接器、流處理、監控與測試;第4篇,是對前面知識的綜合及實際應用,包括ELK套件整合實戰、Spark實時計算引擎整合實戰、Kafka Eagle監控系統設計與實現實戰。本書的每章都配有同步教學視頻。視頻和圖書具有相同的結構,能幫助讀者快速而全面地了解每章的內容。本書還免費提供所有案例的源代碼。這些代碼不僅能方便讀者學習,也能為以后的工作提供便利。本書結構清晰、案例豐富、通俗易懂、實用性強。特別適合Kafka系統的初學者和進階讀者作為自學教程。另外,本書也適合社會培訓學校作為培訓教材,還適合大中專院校的相關專業作為教學參考書。 |
目錄:——第1篇 準備 第1章 了解消息隊列和Kafka 2 1.1 本章教學視頻說明 2 1.2 消息隊列 2 ∟1.2.1 什么是消息隊列 3 ∟1.2.2 消息隊列主要有哪些作用 3 1.3 為什么需要Kafka 6 1.4 Kafka的基本概念 7 ∟1.4.1 代理、生產者、消費者、消費者組 7 ∟1.4.2 主題、分區、副本、記錄 8 1.5 了解Kafka的工作機制——生產消息/消費消息 9 1.6 Kafka的使用范圍 10 ∟1.6.1 Kafka的設計初衷 10 ∟1.6.2 Kafka的特性 11 ∟1.6.3 Kafka適用于哪些場景 13 1.7 小結 14 - 第2章 安裝及配置Kafka 15 2.1 本章教學視頻說明 15 2.2 安裝與配置基礎環境 16 ∟2.2.1 安裝并配置Linux操作系統 16 ∟2.2.2 實例1:安裝與配置Java運行環境 18 ∟2.2.3 實例2:配置SSH免密碼登錄 21 ∟2.2.4 實例3:安裝與配置Zookeeper 23 2.3 實例4:部署Kafka 27 ∟2.3.1 單機模式部署 27 ∟2.3.2 分布式模式部署 29 2.4 實例5:安裝與配置Kafka監控工具 32 ∟2.4.1 獲取并編譯Kafka Eagle源代碼 32 ∟2.4.2 安裝與配置Kafka Eagle 33 2.5 實例6:編譯Kafka源代碼 37 ∟2.5.1 安裝與配置Scala運行環境 38 ∟2.5.2 安裝與配置Gradle 39 ∟2.5.3 了解Kafka源代碼的編譯過程 40 2.6 實例7:將Kafka源代碼導入編輯器 42 ∟2.6.1 導入IntelliJ IDEA編輯器 42 ∟2.6.2 導入Eclipse編輯器 44 2.7 了解元數據的存儲分布 46 2.8 了解控制器的選舉流程 48 ∟2.8.1 了解控制器的啟動順序 48 ∟2.8.2 了解主題分區Leader節點的選舉過程 52 ∟2.8.3 了解注冊分區和副本狀態機 59 ∟2.8.4 了解分區自動均衡和分區重新分配 61 2.9 小結 66 ——第2篇 入門 第3章 Kafka的基本操作 68 3.1 本章教學視頻說明 68 3.2 操作Zookeeper集群 68 ∟3.2.1 Zookeeper的作用及背景 69 ∟3.2.2 實例8:單機模式啟動Zookeeper系統 70 ∟3.2.3 實例9:單機模式關閉Zookeeper系統 72 ∟3.2.4 實例10:分布式模式啟動Zookeeper集群 74 3.2.5 實例11:分布式模式關閉Zookeeper集群 77 3.3 操作Kafka集群 77 ∟3.3.1 實例12:單機模式啟動Kafka系統 78 ∟3.3.2 實例13:單機模式關閉Kafka系統 79 ∟3.3.3 實例14:分布式模式啟動Kafka集群 81 ∟3.3.4 實例15:分布式模式關閉Kafka集群 84 3.4 管理主題 85 ∟3.4.1 什么是主題 86 ∟3.4.2 實例16:創建主題 87 ∟3.4.3 實例17:查看主題 88 ∟3.4.4 實例18:修改主題 92 ∟3.4.5 實例19:刪除主題 94 3.5 管理分區與副本 95 ∟3.5.1 分區和副本的背景及作用 95 ∟3.5.2 實例20:修改分區 96 ∟3.5.3 實例21:修改副本數 97 3.6 小結 99
第4章 將消息數據寫入Kafka系統——生產 100 4.1 本章教學視頻說明 100 4.2 了解Kafka生產者 101 4.3 使用腳本操作生產者 101 ∟4.3.1 實例22:通過監控工具查看消息 102 ∟4.3.2 實例23:啟動消費者程序,并查看消息 103 4.4 發送消息到Kafka主題 104 ∟4.4.1 了解異步模式 104 ∟4.4.2 實例24:生產者用異步模式發送消息 105 ∟4.4.3 了解同步模式 105 ∟4.4.4 實例25:生產者用同步模式發送消息 106 ∟4.4.5 多線程發送消息 107 ∟4.4.6 實例26:生產者用單線程發送消息 107 ∟4.4.7 實例27:生產者用多線程發送消息 110 4.5 配置生產者的屬性 112 4.6 保存對象的各個屬性——序列化 115 ∟4.6.1 實例28:序列化一個對象 115 ∟4.6.2 實例29:在生產者應用程序中實現序列化 117 4.7 自定義主題分區 122 ∟4.7.1 實例30:編寫自定義主題分區的算法 122 ∟4.7.2 實例31:演示自定義分區類的使用 123 4.8 小結 125 - 第5章 從Kafka系統中讀取消息數據——消費 126 5.1 本章教學視頻說明 126 5.2 了解Kafka消費者 126 ∟5.2.1 為什么需要消費者組 126 ∟5.2.1 消費者和消費者組的區別 127 ∟5.2.2 消費者和分區的對應關系 127 5.3 使用Kafka系統的腳本操作消費者 130 ∟5.3.1 認識消費者新接口 130 ∟5.3.2 實例32:用新接口啟動消費者程序,并查看消費者信息 131 ∟5.3.3 實例33:用舊接口啟動消費者程序,并查看消費者元數據的存儲結構 134 5.4 消費Kafka集群中的主題消息 136 ∟5.4.1 主題如何自動獲取分區和手動分配分區 137 ∟5.4.2 實例34:主題自動/手動獲取分區 137 ∟5.4.3 實例35:反序列化主題消息 140 ∟5.4.4 如何提交消息的偏移量 145 ∟5.4.5 實例36:使用多線程消費多個分區的主題 146 5.5 配置消費者的屬性 150 5.6 小結 151 - 第6章 存儲及管理數據 152 6.1 本章教學視頻說明 152 6.2 分區存儲數據 152 ∟6.2.1 熟悉分區存儲 153 ∟6.2.2 了解消息的格式 154 6.3 清理過期數據的兩種方法 155 6.4 網絡模型和通信流程 156 ∟6.4.1 基本數據類型 156 ∟6.4.2 通信模型 157 ∟6.4.3 通信過程 157 6.6 小結 159 - ——第3篇 進階 第7章 Kafka安全機制 162 7.1 本章教學視頻說明 162 7.2 了解Kafka的安全機制 162 ∟7.2.1 身份驗證 163 ∟7.2.2 權限控制 163 7.3 使用SSL協議進行加密和身份驗證 164 ∟7.3.1 了解SSL協議 164 ∟7.3.2 實例37:創建SSL密鑰庫,并查看密鑰庫文件 165 ∟7.3.3 實例38:創建私有證書 167 ∟7.3.4 實例39:導出證書,使用CA對證書進行簽名 170 ∟7.3.5 實例40:在服務端配置SSL協議,并創建主題 173 ∟7.3.6 實例41:在客戶端配置SSL協議,并讀/寫數據 174 7.4 使用SASL協議進行認證 176 ∟7.4.1 給客戶端配置“Java認證和授權服務”(JAAS) 176 ∟7.4.2 給服務端配置SASL 178 ∟7.4.3 實例42:開啟SASL/Kerberos認證協議 178 ∟7.4.4 實例43:開啟SASL/PLAIN認證協議 181 ∟7.4.5 實例44:開啟SASL/SCRAM認證協議 184 7.5 權限控制 187 ∟7.5.1 權限控制的基礎命令 187 ∟7.5.2 配置ACL(訪問控制列表) 188 ∟7.5.3 實例45:啟動集群 189 ∟7.5.4 實例46:查看授權、添加授權、刪除授權 190 7.6 小結 195 - 第8章 用Kafka連接器建立數據管道 196 8.1 本章教學視頻說明 196 8.2 認識Kafka連接器 196 ∟8.2.1 了解連接器的使用場景 197 ∟8.2.2 特性及優勢 198 ∟8.3 操作Kafka連接器 199 8.3.1 配置Kafka連接器的屬性 199 ∟8.3.2 認識應用接口——REST API 202 ∟8.3.3 實例47:單機模式下,將數據導入Kafka主題中 203 ∟8.3.4 實例48:單機模式下,將Kafka主題中的數據導出 205 ∟8.3.5 實例49:分布式模式下,將數據導入Kafka主題 206 8.4 實例50:開發一個簡易的Kafka連接器插件 210 ∟8.4.1 編寫Source連接器 211 ∟8.4.2 編寫Sink連接器 217 ∟8.4.3 打包與部署 220 8.5 小結 225 - 第9章 Kafka流處理 226 9.1 本章教學視頻說明 226 9.2 初識Kafka流處理 227 ∟9.2.1 什么是流處理 227 ∟9.2.2 什么是流式計算 227 ∟9.2.3 為何要使用流處理 228 9.3 了解流處理的架構 229 ∟9.3.1 流分區與任務 230 ∟9.3.2 線程模型 232 ∟9.3.3 本地狀態存儲 234 ∟9.3.4 容錯性(Failover) 235 9.4 操作KStream和KTable 235 ∟9.4.1 流處理的核心概念 236 ∟9.4.2 窗口操作 237 ∟9.4.3 連接操作 241 ∟9.4.4 轉換操作 246 ∟9.4.5 聚合操作 247 9.5 實例51:利用流處理開發一個單詞統計程序 248 ∟9.5.1 創建Kafka流主題 248 ∟9.5.2 統計流主題中單詞出現的頻率 249 ∟9.5.3 預覽操作結果 250 9.6 實例52:利用Kafka流開發一個SQL引擎 251 ∟9.6.1 構建生產流數據源 251 ∟9.6.2 構建Kafka流處理 253 ∟9.6.3 構建數據結構和執行SQL邏輯 254 ∟9.6.4 觀察操作結果 255 9.7 小結 256 - 第10章 監控與測試 257 10.1 本章教學視頻說明 257 10.2 Kafka的監控工具——Kafka Eagle系統 258 ∟10.2.1 實例53:管理主題 258 ∟10.2.2 實例54:查看消費者組信息 259 ∟10.2.3 實例55:查看Kafka與Zookeeper集群的狀態和性能 263 10.3 測試生產者性能 264 ∟10.3.1 了解測試環境 264 ∟10.3.2 認識測試工具 265 ∟10.3.3 實例56:利用工具測試生產者性能 266 10.4 測試消費者性能 275 ∟10.4.1 了解測試環境 275 ∟10.4.2 認識測試工具 276 ∟10.4.3 實例57:利用腳本測試消費者的性能 276 10.4 小結 280 - ——第4篇 商業實戰 第11章 Kafka與ELK套件的整合 282 11.1 本章教學視頻說明 282 11.2 安裝與配置ELK 283 ∟11.2.1 安裝與配置LogStash 283 ∟11.2.2 實例58:LogStash的標準輸入與輸出 285 ∟11.2.3 安裝與配置ElasticSearch 287 ∟11.2.4 實例59:使用ElasticSearch集群的HTTP接口創建索引 292 ∟11.2.5 實例60:使用ElasticSearch集群的HTTP接口查看索引 293 ∟11.2.6 實例61:使用ElasticSearch集群的HTTP接口添加數據 294 ∟11.2.7 安裝與配置Kibana 296 ∟11.2.8 實例62:啟動并驗證Kibana系統 298 11.3 實例63:實現一個游戲日志實時分析系統 299 ∟11.3.1 了解系統要實現的功能 300 ∟11.3.2 了解平臺體系架構 300 ∟11.3.3 采集數據 302 ∟11.3.4 分流數據 304 ∟11.3.5 實現數據可視化 306 11.4 小結 308 - 第12章 Kafka與Spark實時計算引擎的整合 309 12.1 本章教學視頻說明 309 12.2 介紹Spark背景 310 ∟12.2.1 Spark SQL——Spark處理結構化數據的模塊 310 ∟12.2.2 Spark Streaming——Spark核心應用接口的一種擴展 311 ∟12.2.3 MLlib——Spark的一個機器學習類庫 311 ∟12.2.4 GraphX——Spark的一個圖計算框架 311 12.3 準備Spark環境 311 ∟12.3.1 下載Spark基礎安裝包 311 ∟12.3.2 安裝與配置Spark集群 312 12.4 操作Spark 315 ∟12.4.1 實例64:使用Spark Shell統計單詞出現的頻率 315 ∟12.4.2 實例65:使用Spark SQL對單詞權重進行降序輸出 317 ∟12.4.3 實例66:使用Spark Submit統計單詞出現的頻率 319 12.5 實例67:對游戲明細數據做實時統計 322 ∟12.5.1 了解項目背景和價值 323 ∟12.5.2 設計項目實現架構 323 ∟12.5.3 編碼步驟一 實現數據采集 325 ∟12.5.4 編碼步驟二 實現流計算 327 ∟12.5.5 編碼步驟三 打包應用程序 330 ∟12.5.6 編碼步驟四 創建表結構 332 ∟12.5.7 編碼步驟五 執行應用程序 332 ∟12.5.8 編碼步驟六 預覽結果 333 12.6 小結 333 - 第13章 實例68:從零開始設計一個Kafka監控系統——Kafka Eagle 334 13.1 本章教學視頻說明 334 13.2 了解Kafka Eagle監控系統 335 ∟13.2.1 設計的背景 335 ∟13.2.2 應用場景 336 13.3 從結構上了解Kafka Eagle 337 ∟13.3.1 了解Kafka Eagle的整體架構和代碼結構 337 ∟13.3.2 設計Kafka Eagle的7大功能模塊 339 13.4 實現Kafka Eagle的功能模塊 347 ∟13.4.1 編碼步驟一 實現數據面板 347 ∟13.4.2 編碼步驟二 實現主題管理 348 ∟13.4.3 編碼步驟三 實現消費者實例詳情 350 ∟13.4.4 編碼步驟四 實現集群監控 350 ∟13.4.5 編碼步驟五 實現性能監控 351 ∟13.4.6 編碼步驟六 實現告警功能 351 ∟13.4.7 編碼步驟七 實現系統功能 352 13.5 安裝及使用Kafka Eagle監控系統 353 ∟13.5.1 準備環境 353 ∟13.5.2 快速部署 354 ∟13.5.3 了解Kafka Eagle的基礎命令 358 13.6 小結 358 |
序: |