第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
· · · · · · (
收起)