Kafka Streams實戰

Kafka Streams實戰

《Kafka Streams實戰》是2019年6月人民郵電出版社出版的圖書,作者是[美]小威廉·P·貝傑克(William P·Bejeck Jr·)。

基本介紹

  • 中文名:Kafka Streams實戰
  • 作者:[美]小威廉·P·貝傑克(William P·Bejeck Jr·)
  • 出版時間:2019年6月
  • 出版社:人民郵電出版社
  • 頁數:235 頁
  • ISBN:9787115507396
  • 定價:69 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

Kafka Streams是Kafka提供的一個用於構建流式處理程式的Java庫,它與Storm、Spark等流式處理框架不同,是一個僅依賴於Kafka的Java庫,而不是一個流式處理框架。除Kafka之外,Kafka Streams不需要額外的流式處理集群,提供了輕量級、易用的流式處理API。
本書包括4部分,共9章,從基礎API到複雜拓撲的套用,通過具體示例由淺入深地詳細介紹了Kafka Streams基礎知識及使用方法。本書的主要內容包含流式處理髮展歷程和Kafka Streams工作原理的介紹,Kafka基礎知識的介紹,使用Kafka Streams實現一個具體流式處理應用程式,討論狀態存儲及其使用方法,討論表和流的二元性及使用場景,介紹Kafka Streams應用程式的監控及測試方法,介紹使用Kafka Connect將現有數據源集成到Kafka Streams中,使用KSQL進行互動式查詢等。
本書適合使用Kafka Streams實現流式處理套用的開發人員閱讀。

圖書目錄

第 一部分 開啟Kafka Streams之旅
第 1章 歡迎來到Kafka Streams 3
1.1 大數據的發展以及它是如何改變程式設計方式的 3
1.1.1 大數據起源 4
1.1.2 MapReduce中的重要概念 5
1.1.3 批處理還不夠 7
1.2 流式處理簡介 8
1.3 處理購買交易 9
1.3.1 權衡流式處理的選擇 9
1.3.2 將需求解構為圖表 10
1.4 改變看待購買交易的視角 10
1.4.1 源節點 11
1.4.2 信用卡禁止節點 11
1.4.3 模式節點 11
1.4.4 獎勵節點 12
1.4.5 存儲節點 13
1.5 Kafka Streams在購買處理節點圖中的套用 13
1.6 Kafka Streams在購買交易流中的套用 14
1.6.1 定義源 15
1.6.2 第 一個處理器:禁止信用卡號碼 15
1.6.3 第二個處理器:購買模式 16
1.6.4 第三個處理器:客戶獎勵 17
1.6.5 第四個處理器:寫入購買記錄 18
1.7 小結 18
第 2章 Kafka快速指南 20
2.1 數據問題 20
2.2 使用Kafka處理數據 21
2.2.1 ZMart原始的數據平台 21
2.2.2 一個Kafka銷售交易數據中心 22
2.3 Kafka架構 23
2.3.1 Kafka是一個訊息代理 23
2.3.2 Kafka是一個日誌 24
2.3.3 Kafka日誌工作原理 25
2.3.4 Kafka和分區 25
2.3.5 分區按鍵對數據進行分組 26
2.3.6 編寫自定義分區器 27
2.3.7 指定一個自定義分區器 28
2.3.8 確定恰當的分區數 29
2.3.9 分散式日誌 29
2.3.10 ZooKeeper:領導者、追隨者和副本 30
2.3.11 Apache ZooKeeper 31
2.3.12 選擇一個控制器 31
2.3.13 副本 31
2.3.14 控制器的職責 32
2.3.15 日誌管理 33
2.3.16 日誌刪除 33
2.3.17 日誌壓縮 35
2.4 生產者傳送訊息 36
2.4.1 生產者屬性 38
2.4.2 指定分區和時間戳 39
2.4.3 指定分區 39
2.4.4 Kafka中的時間戳 40
2.5 消費者讀取訊息 40
2.5.1 管理偏移量 41
2.5.2 自動提交偏移量 42
2.5.3 手動提交偏移量 42
2.5.4 創建消費者 43
2.5.5 消費者和分區 43
2.5.6 再平衡 43
2.5.7 更細粒度的消費者分配 44
2.5.8 消費者示例 44
2.6 安裝和運行Kafka 45
2.6.1 Kafka本地配置 45
2.6.2 運行Kafka 46
2.6.3 傳送第 一條訊息 47
2.7 小結 49
第二部分 Kafka Streams開發篇
第3章 開發Kafka Streams 53
3.1 流式處理器API 53
3.2 Kafka Streams的Hello World 54
3.2.1 構建“Yelling App”的拓撲 55
3.2.2 Kafka Streams配置 58
3.2.3 Serde的創建 59
3.3 處理客戶數據 60
3.3.1 構建一個拓撲 61
3.3.2 創建一個自定義的Serde 67
3.4 互動式開發 69
3.5 下一步 71
3.5.1 新需求 71
3.5.2 將記錄寫入Kafka之外 76
3.6 小結 78
第4章 流和狀態 79
4.1 事件的思考 79
4.2 將狀態操作套用到Kafka Stream 81
4.2.1 值轉換處理器 82
4.2.2 有狀態的客戶獎勵 82
4.2.3 初始化值轉換器 84
4.2.4 使用狀態將Purchase對象映射為Reward Accumulator 84
4.2.5 更新獎勵處理器 88
4.3 使用狀態存儲查找和記錄以前看到的數據 89
4.3.1 數據本地化 90
4.3.2 故障恢復和容錯 91
4.3.3 Kafka Streams使用狀態存儲 91
4.3.4 其他鍵/值存儲供應者 92
4.3.5 狀態存儲容錯 93
4.3.6 配置變更日誌主題 93
4.4 連線流以增加洞察力 94
4.4.1 設定數據 95
4.4.2 生成包含客戶ID的鍵來執行連線 96
4.4.3 構建連線 98
4.4.4 其他連線選項 102
4.5 Kafka Streams中的時間戳 104
4.5.1 自帶的時間戳提取器實現類 105
4.5.2 WallclockTimestampExtractor 106
4.5.3 自定義時間戳提取器 106
4.5.4 指定一個時間戳提取器 107
4.6 小結 108
第5章 KTable API 109
5.1 流和表之間的關係 110
5.1.1 記錄流 110
5.1.2 更新記錄或變更日誌 111
5.1.3 事件流與更新流對比 113
5.2 記錄更新和KTable配置 115
5.2.1 設定快取緩衝大小 115
5.2.2 設定提交間隔 116
5.3 聚合和開窗操作 117
5.3.1 按行業匯總股票成交量 118
5.3.2 開窗操作 122
5.3.3 連線KStream和KTable 128
5.3.4 GlobalKTable 130
5.3.5 可查詢的狀態 133
5.4 小結 133
第6章 處理器API 135
6.1 更高階抽象與更多控制的權衡 135
6.2 使用源、處理器和接收器創建一個拓撲 136
6.2.1 添加一個源節點 136
6.2.2 添加一個處理器節點 137
6.2.3 增加一個接收器節點 140
6.3 通過股票分析處理器深入研究處理器API 141
6.3.1 股票表現處理器應用程式 142
6.3.2 process( )方法 145
6.3.3 punctuator執行 147
6.4 組合處理器 148
6.5 集成處理器API和Kafka Streams API 158
6.6 小結 159
第三部分 管理Kafka Streams
第7章 監控和性能 163
7.1 Kafka基本監控 163
7.1.1 測評消費者和生產者性能 164
7.1.2 檢查消費滯後 165
7.1.3 攔截生產者和消費者 166
7.2 應用程式指標 169
7.2.1 指標配置 171
7.2.2 如何連線到收集到的指標 172
7.2.3 使用JMX 172
7.2.4 查看指標 176
7.3 更多Kafka Streams調試技術 177
7.3.1 查看應用程式的表現形式 177
7.3.2 獲取應用程式各種狀態的通知 178
7.3.3 使用狀態監聽器 179
7.3.4 狀態恢復監聽器 181
7.3.5 未捕獲的異常處理器 184
7.4 小結 184
第8章 測試Kafka Streams應用程式 185
8.1 測試拓撲 186
8.1.1 構建測試用例 188
8.1.2 測試拓撲中的狀態存儲 190
8.1.3 測試處理器和轉換器 191
8.2 集成測試 193
8.3 小結 199
第四部分 Kafka Streams進階
第9章 Kafka Streams的高級套用 203
9.1 將Kafka與其他數據源集成 204
9.1.1 使用Kafka Connect集成數據 205
9.1.2 配置Kafka Connect 205
9.1.3 轉換數據 207
9.2 替代資料庫 211
9.2.1 互動式查詢的工作原理 213
9.2.2 分配狀態存儲 213
9.2.3 創建和查找分散式狀態存儲 215
9.2.4 編寫互動式查詢 216
9.2.5 查詢伺服器內部 218
9.3 KSQL 221
9.3.1 KSQL流和表 222
9.3.2 KSQL架構 222
9.3.3 安裝和運行KSQL 224
9.3.4 創建一個KSQL流 224
9.3.5 編寫KSQL查詢 226
9.3.6 創建一張KSQL表 227
9.3.7 配置KSQL 227
9.4 小結 228
附錄A 額外的配置信息 229
附錄B 精確一次處理語義 234

相關詞條

熱門詞條

聯絡我們