Kafka Streams實戰

Kafka Streams實戰
定價:414
NT $ 360
  • 作者:(美)小威廉·P.貝傑克
  • 出版社:人民郵電出版社
  • 出版日期:2019-05-01
  • 語言:簡體中文
  • ISBN10:7115507392
  • ISBN13:9787115507396
  • 裝訂:平裝 / 235頁 / 16k / 19 x 26 x 1.18 cm / 普通級 / 單色印刷 / 1-1
 

內容簡介

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實現流式處理應用的開發人員閱讀。

 

作者介紹

小威廉·P.貝傑克(William P.Bejeck Jr.,本名Bill Bejeck)是Kafka Streams源碼貢獻者,在Conflument公司的Kafka Streams團隊工作,有15年以上的軟體開發經驗,其中8年專註於後端開發,特別是處理大量數據,在數據提煉團隊中,使用Kafka來改善下遊客戶的數據流。
 

目錄

第一部分 開啟Kafka Streams之旅

第1章 歡迎來到Kafka Streams3
1.1大資料的發展以及它是如何改變程式設計方式的3
1.1.1大數據起源4
1.1.2MapReduce中的重要概念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.5Kafka Streams在購買處理節點圖中的應用13
1.6Kafka 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.1ZMart原始的資料平臺21
2.2.2一個Kafka銷售交易資料中心22
2.3Kafka架構23
2.3.1Kafka是一個消息代理23
2.3.2Kafka是一個日誌24
2.3.3Kafka日誌工作原理25
2.3.4Kafka和分區25
2.3.5分區按鍵對資料進行分組26
2.3.6編寫自訂分區器27
2.3.7指定一個自訂分區器28
2.3.8確定恰當的分區數29
2.3.9分散式日誌29
2.3.10ZooKeeper:領導者、追隨者和副本30
2.3.11Apache ZooKeeper31
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.4Kafka中的時間戳記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安裝和運行Kafka45
2.6.1Kafka本地配置45
2.6.2運行Kafka46
2.6.3發送第 一條消息47
2.7小結49

第二部分 Kafka Streams開發篇

第3章 開發Kafka Streams53
3.1流式處理器API53
3.2Kafka Streams的Hello World54
3.2.1構建“Yelling App”的拓撲55
3.2.2Kafka Streams配置58
3.2.3Serde的創建59
3.3處理客戶資料60
3.3.1構建一個拓撲61
3.3.2創建一個自訂的Serde67
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 Stream81
4.2.1值轉換處理器82
4.2.2有狀態的客戶獎勵82
4.2.3初始化值轉換器84
4.2.4使用狀態將Purchase物件映射為Reward Accumulator84
4.2.5更新獎勵處理器88
4.3使用狀態存儲查找和記錄以前看到的資料89
4.3.1數據當地語系化90
4.3.2故障恢復和容錯91
4.3.3Kafka 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.5Kafka Streams中的時間戳記104
4.5.1自帶的時間戳記提取器實現類105
4.5.2WallclockTimestampExtractor106
4.5.3自訂時間戳記提取器106
4.5.4指定一個時間戳記提取器107
4.6小結108

第5章 KTable API109
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和KTable128
5.3.4GlobalKTable130
5.3.5可查詢的狀態133
5.4小結133

第6章 處理器API135
6.1更高階抽象與更多控制的權衡135
6.2使用源、處理器和接收器創建一個拓撲136
6.2.1添加一個源節點136
6.2.2添加一個處理器節點137
6.2.3增加一個接收器節點140
6.3通過股票分析處理器深入研究處理器API141
6.3.1股票表現處理器應用程式142
6.3.2process()方法145
6.3.3punctuator執行147
6.4組合處理器148
6.5集成處理器API和Kafka Streams API158
6.6小結159

第三部分 管理Kafka Streams

第7章 監控和性能163
7.1Kafka基本監控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使用JMX172
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 Connect205
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.3KSQL221
9.3.1KSQL流和表222
9.3.2KSQL架構222
9.3.3安裝和運行KSQL224
9.3.4創建一個KSQL流224
9.3.5編寫KSQL查詢226
9.3.6創建一張KSQL表227
9.3.7配置KSQL227
9.4小結228

附錄A 額外的配置資訊229
附錄B 精確一次處理語義234
網路書店 類別 折扣 價格
  1. 新書
    87
    $360