實時流計算系統設計與實現

實時流計算系統設計與實現
定價:474
NT $ 374
  • 作者:周爽
  • 出版社:機械工業出版社
  • 出版日期:2020-02-01
  • 語言:簡體中文
  • ISBN10:7111645804
  • ISBN13:9787111645801
  • 裝訂:平裝 / 225頁 / 16k / 19 x 26 x 1.13 cm / 普通級 / 單色印刷 / 初版
 

內容簡介

全書分為11章。第1章介紹了即時流計算技術的產生背景、使用場景和通用架構。第2章通過即時流計算資料的採集,詳細分析了Java高性能程式設計的理論基礎。第3-6章通過從頭構造一個分散式即時流計算框架,詳細剖析了即時流計算中的幾個核心概念和技術重點,並通過多個開源流計算平臺的實現來驗證這些核心概念和技術重點。第7章談論了當實在做不到“即時”時,我們應該作出的備選方案。第8-10章闡述了構建一個完整即時流計算系統時,必要的周邊輔助系統。第11章給出即時流計算應用案例。
 

目錄

前言

第1章 即時流計算 …… 1
1.1 大數據時代的新挑戰:即時流計算 …… 1
1.2 即時流計算使用場景 …… 2
1.3 即時流資料的特點 …… 4
1.4 即時流計算系統架構 …… 6
1.4.1 資料獲取 …… 6
1.4.2 資料傳輸 …… 7
1.4.3 資料處理 …… 8
1.4.4 資料存儲 …… 8
1.4.5 數據展示 …… 9
1.5 本章小結 …… 10

第2章 資料獲取 …… 11
2.1 設計資料獲取的介面 …… 11
2.2 使用Spring Boot實現資料獲取伺服器 …… 12
2.3 BIO與NIO …… 14
2.3.1 BIO連接器 …… 14
2.3.2 NIO連接器 …… 17
2.4 NIO和非同步 …… 19
2.4.1  CPU密集型任務 …… 19
2.4.2 I/O密集型任務 …… 20
2.4.3 I/O和CPU都密集型任務 …… 21
2.4.4 纖程 …… 22
2.4.5 Actor …… 24
2.4.6 NIO配合非同步程式設計 …… 25
2.5  使用Netty實現資料獲取伺服器 …… 26
2.5.1 使用Netty實現資料獲取API …… 27
2.5.2 非同步程式設計 …… 29
2.5.3 流量控制和反向壓力 …… 31
2.5.4 實現反向壓力 …… 32
2.5.5 非同步的不足之處 …… 36
2.6 本章小結 …… 36

第3章 實現單節點流計算應用 …… 38
3.1 自己動手寫實時流計算框架 …… 38
3.1.1 用DAG描述流計算過程 …… 38
3.1.2 造一個流計算框架的輪子 …… 39
3.1.3 實現特徵提取DAG節點 …… 42
3.1.4 實現特徵提取DAG拓撲 …… 45
3.2 CompletableFuture方法與原理 …… 46
3.2.1 常用的CompletableFuture類方法 …… 47
3.2.2 CompletableFuture的工作原理 …… 49
3.3 採用CompletableFuture實現單節點流處理 …… 51
3.3.1 基於CompletableFuture實現流計算應用 …… 51
3.3.2 反向壓力 …… 53
3.3.3 鎖死 …… 54
3.3.4 再論流與非同步的關係 …… 55
3.4 流計算應用的性能調優 …… 56
3.4.1 優化機制 …… 56
3.4.2 優化工具 …… 56
3.4.3 執行緒狀態 …… 62
3.4.4 優化方向 …… 66
3.5 本章小結 …… 67

第4章 資料處理 …… 68
4.1 流計算到底在計算什麼 …… 68
4.2 流資料操作 …… 70
4.2.1 過濾 …… 70
4.2.2 映射 …… 70
4.2.3 展開映射 …… 71
4.2.4 聚合 …… 72
4.2.5 關聯 …… 73
4.2.6 分組 …… 75
4.2.7 遍歷 …… 75
4.3 時間維度聚合特徵計算 …… 76
4.4 關聯圖譜特徵計算 …… 78
4.4.1 一度關聯 …… 79
4.4.2 二度關聯 …… 81
4.5 事件序列分析 …… 85
4.5.1 CEP程式設計模式 …… 86
4.5.2 Flink CEP實例 …… 87
4.6 模型學習和預測 …… 89
4.6.1 統計學習模型 …… 90
4.6.2 P-value檢驗 …… 90
4.6.3 機器學習模型 …… 91
4.7 本章小結 …… 93

第5章 即時流計算的狀態管理 …… 94
5.1 流的狀態 …… 94
5.1.1 流資料狀態 …… 96
5.1.2 流資訊狀態 …… 97
5.2 採用Redis實現流資訊狀態管理 …… 98
5.2.1 時間維度聚合特徵計算 …… 98
5.2.2 一度關聯特徵計算 …… 99
5.3 採用Apache Ignite實現流資訊狀態管理 …… 100
5.3.1 時間維度聚合分析 …… 101
5.3.2 一度關聯特徵計算 …… 103
5.4 擴展為集群 …… 105
5.4.1 基於Redis的狀態集群 …… 106
5.4.2 局部性原理 …… 106
5.4.3 批次請求處理 …… 108
5.4.4 基於Apache Ignite的狀態集群 …… 109
5.4.5 基於分散式檔案系統的狀態管理集群 …… 109
5.5 本章小結 …… 110

第6章 開源流計算框架 …… 111
6.1 Apache Storm …… 112
6.1.1 系統架構 …… 112
6.1.2 流的描述 …… 113
6.1.3 流的執行 …… 113
6.1.4 流的狀態 …… 116
6.1.5 消息傳達可靠性保證 …… 116
6.2 Spark Streaming …… 117
6.2.1 系統架構 …… 117
6.2.2 流的描述 …… 117
6.2.3 流的執行 …… 118
6.2.4 流的狀態 …… 119
6.2.5 消息傳達可靠性保證 …… 120
6.3 Apache Samza …… 120
6.3.1 系統架構 …… 120
6.3.2 流的描述 …… 121
6.3.3 流的執行 …… 123
6.3.4 流的狀態 …… 126
6.3.5 消息傳達可靠性保證 …… 126
6.4 Apache Flink …… 127
6.4.1 系統架構 …… 127
6.4.2 流的描述 …… 128
6.4.3 流的執行 …… 128
6.4.4 流的狀態 …… 130
6.4.5 消息傳達可靠性 …… 131
6.5 本章小結 …… 132

第7章 當做不到即時 …… 133
7.1 做不到即時的原因 …… 133
7.2 Lambda架構 …… 134
7.2.1 資料系統和Lambda架構思想 …… 135
7.2.2 Lambda架構 …… 135
7.2.3 Lambda架構在即時流計算中的運用 …… 137
7.3 Kappa架構與架構實例 …… 138
7.3.1 Kappa架構 …… 138
7.3.2 Kappa架構實例 …… 140
7.4 本章小結 …… 143

第8章 資料傳輸 …… 144
8.1 消息中介軟體 …… 144
8.1.1 為什麼使用消息中介軟體 …… 145
8.1.2 消息中介軟體的工作模式 …… 146
8.1.3 消息模式 …… 147
8.1.4 使用消息中介軟體的注意事項 …… 149
8.2 Apache Kafka …… 150
8.2.1 Kafka架構 …… 150
8.2.2 Kafka生產者
網路書店 類別 折扣 價格
  1. 新書
    79
    $374