Apache Pulsar實戰 Apache Pulsar in Action

[美]戴維·克傑魯姆加德(David Kjerrumgaard)

  • 出版商: 人民郵電
  • 出版日期: 2024-02-01
  • 定價: $659
  • 售價: 8.5$560
  • 語言: 簡體中文
  • 頁數: 312
  • 裝訂: 平裝
  • ISBN: 7115636362
  • ISBN-13: 9787115636362
  • 此書翻譯自: Apache Pulsar in Action
  • 下單後立即進貨 (約4週~6週)

  • Apache Pulsar實戰-preview-1
  • Apache Pulsar實戰-preview-2
Apache Pulsar實戰-preview-1

商品描述

Apache Pulsar被譽為下一代分佈式消息系統,旨在打通發布/ 訂閱式消息傳遞和流數據分析。本書作者既與Pulsar項目創始成員共事多年,又有在生產環境中使用Pulsar 的豐富經驗。正是這些寶貴的經驗成就了這本Pulsar“避坑指南”,為想輕松上手Pulsar的讀者鋪平了學習之路。本書分為三大部分,共有12章。第一部分概述Pulsar的設計理念和用途。第二部分介紹Pulsar的特性。第三部分以一個虛構的外賣應用程序為例,詳細地介紹Pulsar Functions框架的用法,並展示如何用它實現常見的微服務設計模式。本書示例採用Java語言,並同時提供Python實現。

作者簡介

[美]戴维·克杰鲁姆加德(David Kjerrumgaard),Apache Pulsar Committer,就职于Pulsar背后的公司StreamNative,专注于为开发人员提供Pulsar解决方案。他在流处理领域独树一帜,也是Pulsar社区的活跃分子。

译者简介

吕能,先后毕业于浙江大学和加州大学洛杉矶分校,StreamNative技术主管、Apache Pulsar Committer,专注于Pulsar Functions、分布式计算及企业云服务,主导了公司云原生实时计算产品的开发及相关开源社区生态的构建;曾担任Twitter工程师,参与研发了实时计算框架Heron。

蔡正昕,软件工程师,曾就职于Amazon、StreamNative等公司,从事数据处理系统和云服务控制面的开发;2019年开始关注Pulsar社区并参与讨论、漏洞修复和特性开发。对Pulsar、BookKeeper及在Kubernetes环境中运维有状态系统有比较深入的理解。

孟焕丽,Apache Pulsar Committer、兰州理工大学硕士,目前就职于一家初创公司,从事技术文档写作,对开源社区和新技术有强烈的探索欲。

目錄大綱

第 一部分 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