Apache Pulsar原理解析與應(yīng)用實(shí)踐
鏈接:https://pan.baidu.com/s/1hWFmsaLvM9jxzN6pnR5B4Q?pwd=gt91?
提取碼:gt91

本書從項(xiàng)目背景、基本概念、架構(gòu)設(shè)計(jì)和工程實(shí)踐等多角度出發(fā),全面解讀Pulsar的核心原理與應(yīng)用方法。作為云原生的分布式消息隊(duì)列和流數(shù)據(jù)平臺(tái),Pulsar不僅支持云原生、多租戶、跨區(qū)域數(shù)據(jù)復(fù)制等高級(jí)功能,還支持消息隊(duì)列事務(wù)、分層存儲(chǔ)、可插拔的消息隊(duì)列協(xié)議、Pulsar Function、Pulsar I/O、Pulsar SQL等拓展功能,且可與Apache Spark、Apache Flink等計(jì)算引擎,及Apache Flume、Apache Kafka、Logstash等社區(qū)生態(tài)相結(jié)合。所以,通過Pulsar可以輕松構(gòu)建出一整套的數(shù)據(jù)服務(wù)。本書對這些內(nèi)容均進(jìn)行了詳細(xì)介紹。
本書包括3篇11章。
*基礎(chǔ)篇(第1~4章)首先對Pulsar的背景進(jìn)行簡單介紹,并對多種消息隊(duì)列進(jìn)行重點(diǎn)比較分析;然后對Pulsar的基本概念和基本架構(gòu)進(jìn)行分析,讓讀者對Pulsar有一個(gè)總體的了解;接著分享了Pulsar安裝與部署的方法,以方便讀者快速上手并構(gòu)建自己的服務(wù);最后深度解讀了Pulsar的基本使用方法。
*原理篇(第5~7章)首先深度解讀了Pulsar的核心組件Broker、Bookie、ManagedLedger、主題管理等的原理;然后分析了構(gòu)建在這些核心組件之上的高級(jí)特性,如事務(wù)管理、消息協(xié)議拓展、分層存儲(chǔ)設(shè)計(jì)、消息延遲傳遞與主題壓縮;最后對Pulsar提供的輕量化流數(shù)據(jù)處理引擎Pulsar Function及I/O功能進(jìn)行剖析。
*應(yīng)用篇(第8~11章)首先分享了Pulsar在結(jié)構(gòu)化數(shù)據(jù)查詢與實(shí)時(shí)處理引擎技術(shù)方面的實(shí)踐,介紹了Pulsar如何與Trino、Flink、Spark等引擎相結(jié)合;接著對Pulsar安全配置、服務(wù)管理、服務(wù)監(jiān)控等進(jìn)行討論;最后介紹了Pulsar服務(wù)的應(yīng)用模式,以及Pulsar在數(shù)據(jù)集成、動(dòng)態(tài)數(shù)據(jù)捕獲和高可靠性配置等方面的實(shí)踐。
內(nèi)容簡介
這是一本從實(shí)踐角度解讀Apache Pulsar相關(guān)組件、工作原理和落地實(shí)踐的專業(yè)指導(dǎo)書。本書主要面向的是初中級(jí)讀者,從基礎(chǔ)概念講起,逐漸擴(kuò)展到基本操作、核心技術(shù)、常用工具及典型應(yīng)用等。
本書共分為10章:
第1章主要介紹與Apache Pulsar相關(guān)的基礎(chǔ)知識(shí),比如發(fā)展歷史、適用場景、優(yōu)勢與不足,以及與消息隊(duì)列框架相關(guān)的知識(shí)等。
第2章主要介紹Apache Pulsar的核心概念和架構(gòu)。
第3~9章主要介紹進(jìn)行實(shí)操必須具備的內(nèi)容,比如Apache Pulsar安裝部署的方法、基本操作、核心組件、高級(jí)特性、輸入/輸出、Pulsar SQL、運(yùn)維方法等。
第10章是實(shí)操落地的方法,包括Pulsarde 應(yīng)用模式、flink配合實(shí)現(xiàn)實(shí)時(shí)處理、構(gòu)建實(shí)時(shí)消息管道得具體實(shí)踐等。
作者簡介
楊國棟
騰訊軟件工程師,Apache Pulsar、Apache Flink等項(xiàng)目的核心貢獻(xiàn)者,Apache Pulsar社區(qū)開源愛好者,杭州電子科技大學(xué)碩士。
曾參與某大型數(shù)據(jù)中臺(tái)建設(shè)項(xiàng)目,以及消息隊(duì)列服務(wù)(Pulsar、Kafka)及其相關(guān)數(shù)據(jù)總線服務(wù)的開發(fā)與建設(shè)工作。在Apache Pulsar、Apache Flink落地實(shí)踐方面具有豐富的經(jīng)驗(yàn)。
公眾號(hào)“大數(shù)據(jù)技術(shù)事務(wù)所”運(yùn)營者。
專注于技術(shù)積累,熱愛技術(shù)分享,活躍于多個(gè)技術(shù)論壇。
精彩書評
*使用消息隊(duì)列可以在很大程度上解決海量數(shù)據(jù)吞吐、削峰填谷、系統(tǒng)耦合等問題。對于大數(shù)據(jù)場景下的流式數(shù)據(jù)處理,Pulsar無疑是好的選擇。本書對Pulsar的基本概念、架構(gòu)和常用技巧進(jìn)行了詳細(xì)描述,并深入淺出地介紹了Pulsar的核心基礎(chǔ),同時(shí)結(jié)合作者在國內(nèi)外一線互聯(lián)網(wǎng)公司實(shí)際工作經(jīng)驗(yàn),系統(tǒng)性講解了Pulsar的搭建和使用方法、運(yùn)行原理。本書內(nèi)容包羅萬象,講解深入淺出,是研發(fā)人員的參考指南。從業(yè)者通讀本書一定能得到啟發(fā)。
張建海 博士,教授,杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院副院長,浙江省腦機(jī)協(xié)同智能重點(diǎn)實(shí)驗(yàn)室副主任
*Pulsar是目前開源項(xiàng)目里較為年輕的消息隊(duì)列引擎,它既強(qiáng)大又神秘,且讓很多初學(xué)者無從下手。相信這本書的出現(xiàn)能在很大程度上改變這種狀況。從運(yùn)行原理到使用方法再到安裝部署和運(yùn)維監(jiān)控,本書從實(shí)踐角度詳細(xì)介紹了關(guān)于Pulsar的方方面面。通過本書你可以更好地進(jìn)入Pulsar的世界。
鄒博 ??桶顒?chuàng)始人,中國地質(zhì)科學(xué)院資源所人工智能團(tuán)隊(duì)負(fù)責(zé)人,中海油工技數(shù)字中心顧問
*隨著流數(shù)據(jù)處理技術(shù)的普及與發(fā)展,Pulsar正逐漸展露出強(qiáng)大的消息處理和服務(wù)能力,越來越多的公司選擇使用Pulsar作為消息服務(wù)。本書從原理和實(shí)踐兩個(gè)角度深入介紹了Pulsar技術(shù),同時(shí)注重介紹Pulsar與Flink、Trino等生態(tài)的整合,可幫助讀者基于Pulsar快速構(gòu)建云原生流數(shù)據(jù)平臺(tái)和應(yīng)用,非常值得推薦。
張利兵 《Flink原理、實(shí)戰(zhàn)與性能優(yōu)化》《Flink設(shè)計(jì)與實(shí)現(xiàn)》作者
*本書從基本概念、核心原理、應(yīng)用實(shí)踐等多個(gè)層面出發(fā),對Apache Pulsar進(jìn)行了剖析,并特別注重理論與實(shí)踐的結(jié)合,值得推薦。
朱凱 明源云 天際數(shù)據(jù)平臺(tái)技術(shù)總監(jiān)
目錄
前 言
基礎(chǔ)篇
第1章 Pulsar概述 2
1.1 Pulsar是什么 2
1.2 Pulsar的優(yōu)勢 3
1.2.1 Pulsar不只是消息隊(duì)列 4
1.2.2 存儲(chǔ)與計(jì)算分離 4
1.2.3 云原生架構(gòu) 5
1.2.4 Pulsar的存儲(chǔ)特性 6
1.2.5 消息傳輸協(xié)議 8
1.2.6 消費(fèi)方式 8
1.2.7 豐富的功能與生態(tài) 9
1.3 消息隊(duì)列對比 9
1.3.1 消息隊(duì)列簡介 10
1.3.2 性能與可靠性 11
1.3.3 功能特性對比 14
1.4 快速體驗(yàn) 17
1.4.1 下載安裝 17
1.4.2 單機(jī)服務(wù)啟動(dòng) 17
1.4.3 生產(chǎn)與消費(fèi) 18
第2章 Pulsar的基本概念和架構(gòu)
詳解 20
2.1 Pulsar的基本概念 20
2.1.1 多租戶與命名空間 20
2.1.2 主題 21
2.1.3 生產(chǎn)者 22
2.1.4 消費(fèi)者與訂閱 24
2.1.5 消息的保留與過期 27
2.2 Pulsar的邏輯架構(gòu) 28
2.2.1 主題的配置管理 29
2.2.2 主題的數(shù)據(jù)流轉(zhuǎn) 30
2.2.3 主題的數(shù)據(jù)存儲(chǔ) 31
2.3 Pulsar物理架構(gòu) 32
2.3.1 物理架構(gòu)概述 32
2.3.2 核心組件與服務(wù) 35
第3章 Pulsar安裝與部署 39
3.1 依賴環(huán)境 39
3.1.1 安裝Java 39
3.1.2 Pulsar安裝包 40
3.2 分布式部署 42
3.2.1 資源分配規(guī)劃 42
3.2.2 集群搭建實(shí)戰(zhàn) 44
3.3 Docker部署 47
3.3.1 Docker單機(jī)部署 47
3.3.2 Docker分布式部署 48
3.4 Kubernetes部署 48
3.4.1 minikube環(huán)境安裝 48
3.4.2 Helm Chart安裝 49
3.4.3 在Kubernetes中使用
Pulsar 51
3.5 源碼的結(jié)構(gòu)與編譯 52
3.5.1 源碼結(jié)構(gòu) 52
3.5.2 源碼編譯 52
第4章 Pulsar的基本操作 54
4.1 生產(chǎn)者開發(fā) 54
4.1.1 生產(chǎn)者概覽 54
4.1.2 構(gòu)建客戶端對象 56
4.1.3 構(gòu)建生產(chǎn)者 58
4.1.4 數(shù)據(jù)發(fā)送路由規(guī)則 60
4.1.5 分批發(fā)送 63
4.1.6 分塊發(fā)送 64
4.1.7 生產(chǎn)者攔截器 64
4.2 消費(fèi)者開發(fā) 65
4.2.1 構(gòu)建消費(fèi)者 65
4.2.2 數(shù)據(jù)確認(rèn) 68
4.2.3 消費(fèi)者攔截器 72
4.2.4 消費(fèi)者監(jiān)聽器 72
4.3 Reader開發(fā) 73
4.4 模式管理 74
4.4.1 模式類型 75
4.4.2 自動(dòng)模式 78
4.4.3 模式管理 79
原理篇
第5章 Pulsar核心組件原理 84
5.1 Broker原理 84
5.1.1 通信協(xié)議層 84
5.1.2 主題查找服務(wù) 89
5.1.3 租戶與命名空間管理 90
5.1.4 負(fù)載管理 92
5.2 BookKeeper原理 94
5.2.1 BookKeeper簡介 94
5.2.2 BookKeeper的使用 100
5.3 ManagedLedger組件 100
5.3.1 ManagedLedger簡介 101
5.3.2 消息積壓的配額管理 102
5.3.3 消息的保留與清理 103
5.3.4 消息的寫入 104
5.3.5 消息的緩存與讀取 104
5.4 主題管理 105
5.4.1 Pulsar主題管理架構(gòu) 106
5.4.2 生產(chǎn)者原理 108
5.4.3 訂閱與消費(fèi)者原理 110
5.4.4 消息生存時(shí)間與持久化
控制 114
第6章 Pulsar高級(jí)特性 115
6.1 Pulsar事務(wù) 115
6.1.1 消息隊(duì)列事務(wù)隔離級(jí)別 116
6.1.2 Pulsar事務(wù)簡介 117
6.1.3 Pulsar事務(wù)的使用方法 118
6.1.4 Pulsar事務(wù)實(shí)現(xiàn)原理及關(guān)鍵
流程 119
6.2 消息隊(duì)列協(xié)議層 122
6.2.1 協(xié)議處理器 122
6.2.2 Pulsar上的Kafka簡介 125
6.2.3 Pulsar上的Kafka使用 126
6.2.4 Pulsar上的Kafka工作
原理 128
6.3 分層存儲(chǔ) 130
6.3.1 分層存儲(chǔ)的設(shè)計(jì) 130
6.3.2 分層存儲(chǔ)的使用 131
6.3.3 分層存儲(chǔ)的原理 133
6.4 消息延遲傳遞 133
6.5 主題壓縮 134
6.5.1 主題壓縮應(yīng)用 135
6.5.2 主題壓縮原理 135
第7章 Pulsar Function與
Pulsar I/O 137
7.1 Pulsar Function簡介 137
7.1.1 Pulsar Function編程模型 137
7.1.2 Pulsar Function邏輯結(jié)構(gòu)與
應(yīng)用場景 140
7.2 Pulsar Function應(yīng)用實(shí)踐 141
7.2.1 Pulsar Function的部署與
使用 141
7.2.2 自定義Pulsar Function
開發(fā) 146
7.2.3 Pulsar Function語義支持 148
7.3 Pulsar Function原理 150
7.3.1 Pulsar Function運(yùn)行流程 150
7.3.2 Function Worker組件工作
原理 152
7.3.3 Pulsar運(yùn)行時(shí) 153
7.4 Pulsar I/O 154
7.4.1 Pulsar I/O概述 154
7.4.2 使用內(nèi)置的Pulsar連接器 155
7.4.3 開發(fā)自定義連接器 156
7.4.4 實(shí)例層原理 160
應(yīng)用篇
第8章 Pulsar SQL架構(gòu)、配置與
實(shí)現(xiàn)原理 164
8.1 Trino簡介 164
8.1.1 Trino架構(gòu)簡介 165
8.1.2 存儲(chǔ)與計(jì)算分離 168
8.2 Pulsar SQL配置 169
8.2.1 單機(jī)體驗(yàn)Pulsar SQL 169
8.2.2 數(shù)據(jù)查詢 170
8.3 Pulsar連接器工作原理 171
8.4 Pulsar聯(lián)邦查詢 172
8.4.1 準(zhǔn)備數(shù)據(jù)源 173
8.4.2 聯(lián)邦查詢 175
第9章 管理你的Pulsar 176
9.1 Pulsar安全配置 176
9.1.1 數(shù)據(jù)加密 176
9.1.2 授權(quán)與認(rèn)證 180
9.1.3 自定義權(quán)限插件 186
9.2 Pulsar監(jiān)控配置 189
9.2.1 Pulsar監(jiān)控概述 189
9.2.2 Prometheus部署 190
9.2.3 Grafana儀表盤配置 191
9.3 Pulsar管理工具 192
9.3.1 pulsar-admin工具 192
9.3.2 Pulsar Manager工具 196
9.3.3 性能壓測工具 197
9.3.4 ManagedLedger管理 199
9.4 集群管理 201
9.4.1 配置管理 201
9.4.2 Pulsar資源配置 203
第10章 Pulsar與Flink生態(tài) 206
10.1 Flink簡介 207
10.1.1 Flink的概念 207
10.1.2 Flink基本組件 212
10.2 Flink Pulsar源連接器 214
10.2.1 源連接器的使用 214
10.2.2 源連接器原理 218
10.3 Flink Pulsar輸出連接器 220
10.3.1 統(tǒng)一接收器API 221
10.3.2 Flink Pulsar Sink API的
使用 221
10.3.3 PulsarSink原理 223
第11章 Pulsar應(yīng)用實(shí)踐 224
11.1 Pulsar應(yīng)用模式 224
11.1.1 Pulsar數(shù)據(jù)總線概述 224
11.1.2 Pulsar數(shù)據(jù)集成 226
11.2 Pulsar與Spark集成 230
11.3 Pulsar與Kafka集成 231
11.3.1 Kafka客戶端適配器 231
11.3.2 Pulsar I/O Kafka 233
11.3.3 Pulsar Connector適配器 234
11.4 Pulsar CDC 236
11.4.1 Pulsar Canal CDC 236
11.4.2 Pulsar Debezium CDC 238
11.5 可靠性優(yōu)先場景 239
11.5.1 冪等性、消息確認(rèn)與
事務(wù) 239
11.5.2 可靠性與一致性 240
查看全部↓