深入解析Apache Pulsar

林琳

  • 出版商: 電子工業
  • 出版日期: 2021-11-01
  • 定價: $708
  • 售價: 8.5$602
  • 語言: 簡體中文
  • 頁數: 308
  • 裝訂: 平裝
  • ISBN: 7121422336
  • ISBN-13: 9787121422331
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書由淺入深地講解了Apache Pulsar中各個組件的使用方式及內部實現原理,通過閱讀本書,讀者可以快速、輕松地瞭解Apache Pulsar內部的運行機制。第1章介紹Apache Pulsar的背景,以及如何快速部署一個Apache Pulsar服務。第2章介紹Apache Pulsar客戶端的實現機制與原理,包括生產者、消費者、管理流客戶端等。第3章介紹Apache Pulsar中最重要的邏輯組件—Broker,讀者通過這部分內容可以瞭解Broker所有的特性。除了最基礎的收發消息,Apache Pulsar還能進行輕量級的函數計算、數據流轉。第4章詳細介紹Apache Pulsar的Function和Pulsar IO (Connector)。第5章介紹Apache Pulsar的存儲層—BookKeeper,通過本章的學習,讀者可以瞭解Apache Pulsar的數據存儲模型及流程實現。第6章介紹線上實戰的一些經驗,包括高可用、擴/縮容、資源隔離等。

作者簡介

林琳,騰訊專家工程師,Apache Pulsar Committer & PMC,著有《深入理解Apache Dubbo原理與實戰》,先後就職於螞蟻金服、騰訊等公司。開源與中間件愛好者,常年混跡在開源社區,喜歡研究各種中間件的源碼與設計思想,專注於中間件領域,在消息隊列、微服務等方面有豐富的經驗,致力於打造穩定、高效、可擴展的底層基礎組件或服務。

目錄大綱

第1章認識Pulsar 1
1.1 Pulsar 的背景 1
1.2 Pulsar概覽 5
1.3 第#一個Pulsar程序7
1.3.1 環境的準備 7
1.3.2 下載脈衝星7
1.3.3 Pulsar的目錄結構 9
1.3.4.部署Pulsar 12
1.4 小結 18

第2章 客戶端 19
2.1 名詞介紹 19
2.2 話題 20
2.2.1 主題簡介 20
2.2.2 話題的創建與刪除 23
2.2.3 主題的歸屬 26
2.2.4 主題的遷移29
2.2.5 可壓縮主題33
2.3 脈衝星客戶端 36
2.3.1、不同的客戶端 37
2.3.2 創建管理流客戶端的流程 38
2.3.3、創建數據流客戶端的流程41
2.4 生產者客戶端 43
2.4.1 生產者客戶端簡介 43
2.4.2 生產者原理解析 48
2.5 消費者客戶端 56
2.5.1 消費者客戶端簡介 56
2.5.2 創建ConsumerImpl 64
2.5.3 接收消息 65
2.5.4 確認消息 67
2.5.5 MultiTopicsConsumerImpl 75
2.5.6 ZeroQueueConsumerImpl 77
2.5.7 PatternMultiTopicsConsumerImpl 77
2.5.8 消費者的其他接口78
2.6 閱讀器 79
2.6.1 創建ReaderImpl 80
2.6.2.Reader的實現原理 81
2.7 客戶端其他能力 82
2.7.1、連接管理與線程池管理 82
2.7.2 LookupService 88
2.7.3 MemoryLimitController 90
2.8 小結91

第3章 經紀人92
3.1 Broker簡介 92
3.1.1 Broker的啟動流程93
3.1.2.Broker的生產消費流程96
3.2 架構99
3.2.1 Schema簡介99
3.2.2 Schema 的類型 101
3.2.3.Schema的管理 105
3.2.4、Schema的版本與版本108
3.2.5.Schema的實現110
3.3 安全機制112
3.3.1 認證授權簡介 113
3.3.2、認證授權框架114
3.3.3 默認的認證插件 117
3.3.4 視野131
3.4.配置與策略134
3.4.1、配置的加載 135
3.4.2、動態配置的實現 135
3.4.3 名稱空間策略137
3.4.4 話題策略139
3.4.5 策略的實現 144
3.5 元數據管理 145
3.5.1 元數據簡介 145
3.5.2 /元數據的監控 148
3.5.3、元數據的線程安全 150
3.5.4 Session檢測151
3.6 存儲管理 153
3.6.1 存儲模型 153
3.6.2 存儲流程156
3.6.3 游標160
3.6.4 消息回溯的實現171
3.6.5 數據的清理 172
3.6.6 BacklogSize與StorageSize 176
3.7 收藏存儲 177
3.7.1、瀏覽存儲的使用 178
3.7.2 數據的卸與加載 179
3.8 擴展點 181
3.8.1 擴展點簡介 181
3.8.2 ProtocolHandler擴展點183
3.8.3 BrokerInterceptor 184
3.8.4 其他擴展點 186
3.9 負載管理 188
3.9.1 負載管理簡介 188
3.9.2 負載的上報 190
3.9.3 負載策略194
3.9.4 Bundle的自動分裂196
3.9.5Leader選與Broker分配197
3.10 管理流服務 198
3.10.1 管理流服務簡介 199
3.10.2 REST接口的產生201
3.10.3 WebSocket 202
3.11 消息去重203
3.12、事務消息205
3.12.1.事務簡介206
3.12.2、事務流程208
3.12.3、事務的實現210
3.13 調度員214
3.13.1.調度器流程215
3.13.2.調度器的實現原理217
3.14 小結219

第4章 函數與Pulsar IO 221
4.1 功能簡介222
4.2 函數的使用 224
4.3 函數的架構230
4.4 函數的實現原理233
4.4.1 服務的啟動 233
4.4.2 LeaderService的實現234
4.4.3 MembershipManager與SchedulerManager的實現235
4.4.4 FunctionAssignmentTailer的實現236
4.4.5 FunctionMetaDataManager的實現236
4.4.6 FunctionRuntimeManager的實現237
4.5 運行時的實現 240
4.5.1 ThreadRuntime的實現240
4.5.2 ProcessRuntime的實現242
4.5.3 KubernetesRuntime的實現243
4.6 脈衝星IO簡介244
4.7.部署Connector 245
4.8 開發連接器247
4.9 Pulsar IO的實現249
4.10 小結249

第5章 BookKeeper存儲 251
5.1 項目結構 251
5.2 存儲簡介 252
5.3、數據寫入的實現 255
5.4 數據讀取的實現 259
5.5 自愈能力260
5.6 小結263

第6章 實戰Pulsar 264
6.1 可以高264
6.1.1 跨區域可見266
6.1.2 跨地域複製271
6.1.3 跨地域複製的使用 277
6.1.4 跨地域複製的實現280
6.2 擴/縮容 284
6.3 資源隔離287
6.3.1 資源隔離的使用 287
6.3.2·資源隔離的實現290
6.4 小結291