《Apache Pulsar實戰》是2024年人民郵電出版社出版的圖書。
基本介紹
- 中文名:Apache Pulsar實戰
- 作者:戴維·克傑魯姆加德
- 譯者:呂能、蔡正昕、孟煥麗
- 語言:中文
- 出版時間:2024年2月1日
- 出版社:人民郵電出版社
- 頁數:312 頁
- 字數:490000
- ISBN:9787115636362
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,
內容簡介
Apache Pulsar被譽為下一代分散式訊息系統,旨在打通發布/ 訂閱式訊息傳遞和流數據分析。本書作者既與Pulsar項目創始成員共事多年,又有在生產環境中使用Pulsar 的豐富經驗。正是這些寶貴的經驗成就了這本Pulsar“避坑指南”,為想輕鬆上手Pulsar的讀者鋪平了學習之路。本書分為三大部分,共有12章。第一部分概述Pulsar的設計理念和用途。第二部分介紹Pulsar的特性。第三部分以一個虛構的外賣應用程式為例,詳細地介紹Pulsar Functions框架的用法,並展示如何用它實現常見的微服務設計模式。本書示例採用Java語言,並同時提供Python實現。
圖書目錄
第 一部分 Apache Pulsar入門
第 1章 走近Pulsar 3
1.1 企業級訊息系統 3
1.2 訊息消費模式 6
1.2.1 訊息發布和訂閱 6
1.2.2 訊息佇列 6
1.3 訊息系統的演進 7
1.3.1 通用訊息系統 7
1.3.2 面向訊息的中間件 8
1.3.3 企業服務匯流排 9
1.3.4 分散式訊息系統 11
1.4 對比Pulsar 和Kafka 16
1.4.1 多層架構 17
1.4.2 訊息消費模式不同 18
1.4.3 數據持久化 20
1.4.4 訊息確認 22
1.4.5 訊息保留 24
1.5 為什麼需要Pulsar 24
1.5.1 保證訊息投遞 25
1.5.2 無限可擴展性 25
1.5.3 容錯性 26
1.5.4 支持百萬級主題 . 27
1.5.5 跨地域複製及主動故障切換 27
1.6 實際案例 29
1.6.1 統一的訊息系統 29
1.6.2 微服務平台 29
1.6.3 車聯網 30
1.6.4 反欺詐 30
1.7 補充資料 30
1.8 小結 31
第 2章 Pulsar 的架構和相關概念 32
2.1 Pulsar 的物理架構 32
2.1.1 Pulsar 的分層架構 33
2.1.2 無狀態服務層 34
2.1.3 流存儲層 37
2.1.4 元數據存儲 40
2.2 Pulsar 的邏輯架構 42
2.2.1 租戶、名字空間和主題 43
2.2.2 定位Pulsar 主題 45
2.2.3 生產者、消費者和訂閱 46
2.2.4 訂閱模式 47
2.3 訊息保留和訊息過期 50
2.3.1 訊息保留 51
2.3.2 backlog配額 52
2.3.3 訊息過期 53
2.3.4 對比訊息保留策略與訊息過期策略 54
2.4 分層存儲 54
2.5 小結 57
第3章 與Pulsar 互動 58
3.1 開始使用Pulsar 58
3.2 管理Pulsar 59
3.2.1 創建租戶、名字空間和主題 60
3.2.2 Java API 61
3.3 Pulsar 客戶端 62
3.3.1 Pulsar Java客戶端 64
3.3.2 Pulsar Python客戶端 71
3.3.3 Pulsar Go客戶端 74
3.4 高級管理 78
3.4.1 持久化主題指標 78
3.4.2 檢視訊息 80
3.5 小結 81
第二部分 Apache Pulsar開發基礎
第4章 Pulsar Functions 84
4.1 流處理 84
4.1.1 傳統批處理 84
4.1.2 微批處理 85
4.1.3 流原生處理 85
4.2 什麼是Pulsar Functions 86
4.3 編寫Pulsar 函式 87
4.3.1 語言原生函式 87
4.3.2 Pulsar Functions SDK 88
4.3.3 有狀態函式 93
4.4 測試Pulsar函式 95
4.4.1 單元測試 96
4.4.2 集成測試 97
4.5 部署Pulsar 函式 102
4.5.1 生成部署artifact 102
4.5.2 函式配置 104
4.5.3 函式部署 107
4.5.4 函式部署生命周期 109
4.5.5 部署模式 109
4.5.6 Pulsar函式數據流 110
4.6 小結 111
第5章 Pulsar IO連線器 112
5.1 什麼是Pulsar IO連線器 112
5.1.1 sink連線器 113
5.1.2 source連線器 115
5.1.3 PushSource連線器 116
5.2 開發Pulsar IO 連線器 118
5.2.1 開發sink 連線器 118
5.2.2 開發PushSource連線器 120
5.3 測試Pulsar IO連線器 122
5.3.1 單元測試 123
5.3.2 集成測試 124
5.3.3 打包Pulsar IO連線器 126
5.4 部署Pulsar IO連線器 127
5.4.1 創建連線器 128
5.4.2 調試已部署的連線器 129
5.5 Pulsar的內建連線器 131
5.5.1 啟動MongoDB集群 132
5.5.2 連線Pulsar容器和MongoDB容器 132
5.5.3 配置和創建MongoDB sink連線器 133
5.6 管理Pulsar IO連線器 135
5.6.1 顯示連線器 135
5.6.2 監控連線器 136
5.7 小結 138
第6章 Pulsar安全 139
6.1 傳輸加密 139
6.2 認證 146
6.2.1 TLS認證 146
6.2.2 JWT認證 151
6.3 授權 155
6.3.1 角色 155
6.3.2 套用場景舉例 157
6.4 訊息加密 162
6.5 小結 165
第7章 schema registry 166
7.1 微服務通信 166
7.1.1 微服務API 167
7.1.2 schema registry的必要性 169
7.2 schema registry詳解 169
7.2.1 架構 169
7.2.2 schema版本 172
7.2.3 schema兼容性 172
7.2.4 schema兼容性檢查策略 174
7.3 使用schema registry 178
7.3.1 使用Avro 建模外賣訂單事件 179
7.3.2 發布外賣訂單事件 182
7.3.3 消費外賣訂單事件 183
7.3.4 完整示例 185
7.4 schema的演變 187
7.5 小結 189
第三部分 使用Apache Pulsar開發應用程式
第8章 Pulsar Functions模式 192
8.1 數據管道 192
8.1.1 過程式編程 193
8.1.2 數據流編程 193
8.2 訊息路由模式 195
8.2.1 分割器模式 195
8.2.2 動態路由器模式 198
8.2.3 基於內容的路由器模式 201
8.3 訊息轉換模式 203
8.3.1 訊息翻譯器模式 203
8.3.2 內容增強器模式 206
8.3.3 內容過濾器模式 207
8.4 小結 208
第9章 彈性模式 209
9.1 Pulsar Functions的彈性 210
9.1.1 不利事件 210
9.1.2 故障檢測 213
9.2 彈性設計模式 214
9.2.1 重試模式 215
9.2.2 斷路器模式 218
9.2.3 速率限制器模式 222
9.2.4 時間限制器模式 224
9.2.5 快取模式 227
9.2.6 回退模式 228
9.2.7 憑證刷新模式 230
9.3 多層彈性 232
9.4 小結 234
第 10章 數據訪問 235
10.1 數據源 235
10.2 數據訪問用例236
10.2.1 設備驗證 237
10.2.2 外賣騎手位置數據集245
10.3 小結 251
第 11章 Pulsar 與機器學習252
11.1 部署機器學習模型 252
11.1.1 批處理模式 252
11.1.2 近實時處理模式253
11.2 近實時模型部署 253
11.3 特徵向量 255
11.3.1 特徵存儲 255
11.3.2 特徵計算256
11.4 預估送餐時間 257
11.4.1 導出機器學習模型 257
11.4.2 特徵向量映射 259
11.4.3 部署機器學習模型61
11.5 神經網路263
11.5.1 訓練神經網路264
11.5.2 用Java部署神經網路 265
11.6 小結 266
第 12章 邊緣分析 267
12.1 IIoT架構 269
12.1.1 感知與反應層 269
12.1.2 傳輸層 270
12.1.3 數據處理層 270
12.2 基於Pulsar的數據處理層 270
12.3 邊緣分析概覽 272
12.3.1 遙測數據 273
12.3.2 單變數與多變數 274
12.4 單變數數據分析 274
12.4.1 降噪 275
12.4.2 統計分析 277
12.4.3 近似估計 280
12.5 多變數數據分析 282
12.5.1 創建雙向訊息格線 282
12.5.2 構造多變數數據集286
12.6 本書之外 290
12.7 小結 291
附錄A 在Kubernetes中運行Pulsar 292
附錄B 跨地域複製 303
