前言 .1
第1 章 狀態化流處理概述 .7
傳統數據處理架構 .8
事務型處理 8
分析型處理.9
狀態化流處理 11
事件驅動型應用 .13
數據管道 14
流式分析 15
開源流處理的演變 .16
曆史迴顧 17
Flink 快覽 18
運行首個Flink 應用 .20
小結 .23
第2 章 流處理基礎 . 25
Dataflow 編程概述 25
Dataflow 圖 25
數據並行和任務並行 26
數據交換策略 .27
並行流處理 28
延遲和吞吐.28
數據流上的操作 .31
時間語義 .36
流處理場景下一分鍾的含義 37
處理時間 38
事件時間 39
水位綫 40
處理時間與事件時間 41
狀態和一緻性模型 .41
任務故障 43
結果保障 44
小結 .46
第3 章 Apache Flink 架構 . 47
係統架構 .47
搭建Flink 所需組件 .48
應用部署 50
任務執行 51
高可用性設置 .52
Flink 中的數據傳輸 .54
基於信用值的流量控製 56
任務鏈接 57
事件時間處理 58
時間戳 59
水位綫 59
水位綫傳播和事件時間 61
時間戳分配和水位綫生成 63
狀態管理 .64
算子狀態 65
鍵值分區狀態 .66
狀態後端 68
有狀態算子的擴縮容 68
檢查點、保存點及狀態恢復 71
一緻性檢查點 .71
從一緻性檢查點中恢復 72
Flink 檢查點算法 .74
檢查點對性能的影響 79
保存點 79
小結 .82
第4 章 設置Apache Flink 開發環境 83
所需軟件 .83
在IDE 中運行和調試Flink 程序 .84
在IDE 中導入書中示例 .84
在IDE 中運行Flink 程序 .87
在IDE 中調試Flink 程序 88
創建Flink Maven 項目 89
小結 .90
第5 章 DataStream API (1.7 版本) . 91
Hello, Flink! 91
設置執行環境 .93
讀取輸入流.94
應用轉換 94
輸齣結果 95
執行 96
轉換操作 .96
基本轉換 97
基於KeyedStream 的轉換 100
多流轉換 104
分發轉換 108
設置並行度 111
類型 . 112
支持的數據類型 . 113
為數據類型創建類型信息 116
顯式提供類型信息 . 117
定義鍵值和引用字段 . 118
字段位置 118
字段錶達式. 119
鍵值選擇器.120
實現函數 .121
函數類 121
Lambda 函數 122
富函數 123
導入外部和Flink 依賴 124
小結 .125
第6 章 基於時間和窗口的算子 127
配置時間特性 127
分配時間戳和生成水位綫 129
水位綫、延遲及完整性問題 133
處理函數 .134
時間服務和計時器 .136
嚮副輸齣發送數據 .138
CoProcessFunction .140
窗口算子 .141
定義窗口算子 .142
內置窗口分配器 .143
在窗口上應用函數 .148
自定義窗口算子 .155
基於時間的雙流Join .167
基於間隔的Join .167
基於窗口的Join .168
處理遲到數據 170
丟棄遲到事件 .170
重定嚮遲到事件 .171
基於遲到事件更新結果 172
小結 .174
第7 章 有狀態算子和應用 . 175
實現有狀態函數 176
在RuntimeContext 中聲明鍵值分區狀態 .176
通過ListCheckpointed 接口實現算子列錶狀態 .180
使用CheckpointedFunction 接口 .187
接收檢查點完成通知 189
為有狀態的應用開啓故障恢復 190
確保有狀態應用的可維護性 190
指定算子唯一標識 .191
為使用鍵值分區狀態的算子定義最大並行度 192
有狀態應用的性能及魯棒性 192
選擇狀態後端 .193
選擇狀態原語 .194
防止狀態泄露 .195
更新有狀態應用 198
保持現有狀態更新應用 199
從應用中刪除狀態 .200
修改算子的狀態 .200
可查詢式狀態 .202
可查詢式狀態服務的架構及啓用方式203
對外暴露可查詢式狀態 204
從外部係統查詢狀態 205
小結 .207
第8 章 讀寫外部係統 209
應用的一緻性保障 .210
冪等性寫 211
事務性寫 211
內置連接器 213
Apache Kafka 數據源連接器 214
Apache Kafka 數據匯連接器 218
文件係統數據源連接器 222
文件係統數據匯連接器 224
Apache Cassandra 數據匯連接器 .228
實現自定義數據源函數 .232
可重置的數據源函數 233
數據源函數、時間戳及水位綫 .235
實現自定義數據匯函數 .236
冪等性數據匯連接器 238
事務性數據匯連接器 239
異步訪問外部係統 .248
小結 .251
第9 章 搭建Flink 運行流式應用 253
部署模式 .253
獨立集群 254
Docker 256
Apache Hadoop YARN .258
Kubernetes 261
高可用性設置 266
獨立集群的HA 設置 267
YARN 上的HA 設置 268
Kubernetes 的HA 設置 270
集成Hadoop 組件 270
文件係統配置 272
係統配置 .274
Java 和類加載.275
CPU 275
內存和網絡緩衝 .276
磁盤存儲 278
檢查點和狀態後端 .279
安全性 280
小結 .281
第10 章 Flink 和流式應用運維 283
運行並管理流式應用 .283
保存點 284
通過命令行客戶端管理應用 285
通過REST API 管理應用 .292
在容器中打包並部署應用 298
控製任務調度 302
控製任務鏈接 .302
定義處理槽共享組 .303
調整檢查點及恢復 .305
配置檢查點.306
配置狀態後端 .309
配置故障恢復 . 311
監控Flink 集群和應用 313
Flink Web UI 313
指標係統 316
延遲監控 322
配置日誌行為 323
小結 .324
第11 章 還有什麼? 325
Flink 生態的其他組成部分 325
用於批處理的DataSet API .325
用於關係型分析的Table API 及SQL 326
用於復雜事件處理和模式匹配的FlinkCEP .326
用於圖計算的Gelly .327
歡迎加入社區 327
· · · · · · (
收起)