您的位置:互联网 > 正文

Apache Pulsar原理解析与应用实践|快讯

来源: 时间:2023-06-04 06:39:33

链接:https://pan.baidu.com/s/1Z2C3Tu4LihzoMTB7uPoFRw?pwd=u4cb 

提取码:u4cb

本书从项目背景、基本概念、架构设计和工程实践等多角度出发,全面解读Pulsar的核心原理与应用方法。作为云原生的分布式消息队列和流数据平台,Pulsar不仅支持云原生、多租户、跨区域数据复制等高级功能,还支持消息队列事务、分层存储、可插拔的消息队列协议、Pulsar Function、Pulsar I/O、Pulsar SQL等拓展功能,且可与Apache Spark、Apache Flink等计算引擎,及Apache Flume、Apache Kafka、Logstash等社区生态相结合。所以,通过Pulsar可以轻松构建出一整套的数据服务。本书对这些内容均进行了详细介绍。


(资料图)

本书包括3篇11章。*基础篇(第1~4章)首先对Pulsar的背景进行简单介绍,并对多种消息队列进行重点比较分析;然后对Pulsar的基本概念和基本架构进行分析,让读者对Pulsar有一个总体的了解;接着分享了Pulsar安装与部署的方法,以方便读者快速上手并构建自己的服务;最后深度解读了Pulsar的基本使用方法。

*原理篇(第5~7章)首先深度解读了Pulsar的核心组件Broker、Bookie、ManagedLedger、主题管理等的原理;然后分析了构建在这些核心组件之上的高级特性,如事务管理、消息协议拓展、分层存储设计、消息延迟传递与主题压缩;最后对Pulsar提供的轻量化流数据处理引擎Pulsar Function及I/O功能进行剖析。

*应用篇(第8~11章)首先分享了Pulsar在结构化数据查询与实时处理引擎技术方面的实践,介绍了Pulsar如何与Trino、Flink、Spark等引擎相结合;接着对Pulsar安全配置、服务管理、服务监控等进行讨论;最后介绍了Pulsar服务的应用模式,以及Pulsar在数据集成、动态数据捕获和高可靠性配置等方面的实践。

内容简介

这是一本从实践角度解读Apache Pulsar相关组件、工作原理和落地实践的专业指导书。本书主要面向的是初中级读者,从基础概念讲起,逐渐扩展到基本操作、核心技术、常用工具及典型应用等。

本书共分为10章:

第1章主要介绍与Apache Pulsar相关的基础知识,比如发展历史、适用场景、优势与不足,以及与消息队列框架相关的知识等。

第2章主要介绍Apache Pulsar的核心概念和架构。

第3~9章主要介绍进行实操必须具备的内容,比如Apache Pulsar安装部署的方法、基本操作、核心组件、高级特性、输入/输出、Pulsar SQL、运维方法等。

第10章是实操落地的方法,包括Pulsarde 应用模式、flink配合实现实时处理、构建实时消息管道得具体实践等。

作者简介

杨国栋腾讯软件工程师,Apache Pulsar、Apache Flink等项目的核心贡献者,Apache Pulsar社区开源爱好者,杭州电子科技大学硕士。曾参与某大型数据中台建设项目,以及消息队列服务(Pulsar、Kafka)及其相关数据总线服务的开发与建设工作。在Apache Pulsar、Apache Flink落地实践方面具有丰富的经验。公众号“大数据技术事务所”运营者。专注于技术积累,热爱技术分享,活跃于多个技术论坛。

精彩书评

*使用消息队列可以在很大程度上解决海量数据吞吐、削峰填谷、系统耦合等问题。对于大数据场景下的流式数据处理,Pulsar无疑是好的选择。本书对Pulsar的基本概念、架构和常用技巧进行了详细描述,并深入浅出地介绍了Pulsar的核心基础,同时结合作者在国内外一线互联网公司实际工作经验,系统性讲解了Pulsar的搭建和使用方法、运行原理。本书内容包罗万象,讲解深入浅出,是研发人员的参考指南。从业者通读本书一定能得到启发。张建海 博士,教授,杭州电子科技大学计算机学院副院长,浙江省脑机协同智能重点实验室副主任*Pulsar是目前开源项目里较为年轻的消息队列引擎,它既强大又神秘,且让很多初学者无从下手。相信这本书的出现能在很大程度上改变这种状况。从运行原理到使用方法再到安装部署和运维监控,本书从实践角度详细介绍了关于Pulsar的方方面面。通过本书你可以更好地进入Pulsar的世界。邹博 睿客邦创始人,中国地质科学院资源所人工智能团队负责人,中海油工技数字中心顾问*随着流数据处理技术的普及与发展,Pulsar正逐渐展露出强大的消息处理和服务能力,越来越多的公司选择使用Pulsar作为消息服务。本书从原理和实践两个角度深入介绍了Pulsar技术,同时注重介绍Pulsar与Flink、Trino等生态的整合,可帮助读者基于Pulsar快速构建云原生流数据平台和应用,非常值得推荐。张利兵 《Flink原理、实战与性能优化》《Flink设计与实现》作者*本书从基本概念、核心原理、应用实践等多个层面出发,对Apache Pulsar进行了剖析,并特别注重理论与实践的结合,值得推荐。朱凯  明源云 天际数据平台技术总监

目录

前 言

基础篇

第1章 Pulsar概述  2

1.1 Pulsar是什么  2

1.2 Pulsar的优势  3

1.2.1 Pulsar不只是消息队列  4

1.2.2 存储与计算分离  4

1.2.3 云原生架构  5

1.2.4 Pulsar的存储特性  6

1.2.5 消息传输协议  8

1.2.6 消费方式  8

1.2.7 丰富的功能与生态  9

1.3 消息队列对比  9

1.3.1 消息队列简介  10

1.3.2 性能与可靠性  11

1.3.3 功能特性对比  14

1.4 快速体验  17

1.4.1 下载安装  17

1.4.2 单机服务启动  17

1.4.3 生产与消费  18

第2章 Pulsar的基本概念和架构

详解  20

2.1 Pulsar的基本概念  20

2.1.1 多租户与命名空间  20

2.1.2 主题  21

2.1.3 生产者  22

2.1.4 消费者与订阅  24

2.1.5 消息的保留与过期  27

2.2 Pulsar的逻辑架构  28

2.2.1 主题的配置管理  29

2.2.2 主题的数据流转  30

2.2.3 主题的数据存储  31

2.3 Pulsar物理架构  32

2.3.1 物理架构概述  32

2.3.2 核心组件与服务  35

第3章 Pulsar安装与部署  39

3.1 依赖环境  39

3.1.1 安装Java  39

3.1.2 Pulsar安装包  40

3.2 分布式部署  42

3.2.1 资源分配规划  42

3.2.2 集群搭建实战  44

3.3 Docker部署  47

3.3.1 Docker单机部署  47

3.3.2 Docker分布式部署  48

3.4 Kubernetes部署  48

3.4.1 minikube环境安装  48

3.4.2 Helm Chart安装  49

3.4.3 在Kubernetes中使用

Pulsar  51

3.5 源码的结构与编译  52

3.5.1 源码结构  52

3.5.2 源码编译  52

第4章 Pulsar的基本操作  54

4.1 生产者开发  54

4.1.1 生产者概览  54

4.1.2 构建客户端对象  56

4.1.3 构建生产者  58

4.1.4 数据发送路由规则  60

4.1.5 分批发送  63

4.1.6 分块发送  64

4.1.7 生产者拦截器  64

4.2 消费者开发  65

4.2.1 构建消费者  65

4.2.2 数据确认  68

4.2.3 消费者拦截器  72

4.2.4 消费者监听器  72

4.3 Reader开发  73

4.4 模式管理  74

4.4.1 模式类型  75

4.4.2 自动模式  78

4.4.3 模式管理  79

原理篇

第5章 Pulsar核心组件原理  84

5.1 Broker原理  84

5.1.1 通信协议层  84

5.1.2 主题查找服务  89

5.1.3 租户与命名空间管理  90

5.1.4 负载管理  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主题管理架构  106

5.4.2 生产者原理  108

5.4.3 订阅与消费者原理  110

5.4.4 消息生存时间与持久化

控制  114

第6章 Pulsar高级特性  115

6.1 Pulsar事务  115

6.1.1 消息队列事务隔离级别  116

6.1.2 Pulsar事务简介  117

6.1.3 Pulsar事务的使用方法  118

6.1.4 Pulsar事务实现原理及关键

流程  119

6.2 消息队列协议层  122

6.2.1 协议处理器  122

6.2.2 Pulsar上的Kafka简介  125

6.2.3 Pulsar上的Kafka使用  126

6.2.4 Pulsar上的Kafka工作

原理  128

6.3 分层存储  130

6.3.1 分层存储的设计  130

6.3.2 分层存储的使用  131

6.3.3 分层存储的原理  133

6.4 消息延迟传递  133

6.5 主题压缩  134

6.5.1 主题压缩应用  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逻辑结构与

应用场景  140

7.2 Pulsar Function应用实践  141

7.2.1 Pulsar Function的部署与

使用  141

7.2.2 自定义Pulsar Function

开发  146

7.2.3 Pulsar Function语义支持  148

7.3 Pulsar Function原理  150

7.3.1 Pulsar Function运行流程  150

7.3.2 Function Worker组件工作

原理  152

7.3.3 Pulsar运行时  153

7.4 Pulsar I/O  154

7.4.1 Pulsar I/O概述  154

7.4.2 使用内置的Pulsar连接器  155

7.4.3 开发自定义连接器  156

7.4.4 实例层原理  160

应用篇

第8章 Pulsar SQL架构、配置与

实现原理  164

8.1 Trino简介  164

8.1.1 Trino架构简介  165

8.1.2 存储与计算分离  168

8.2 Pulsar SQL配置  169

8.2.1 单机体验Pulsar SQL  169

8.2.2 数据查询  170

8.3 Pulsar连接器工作原理  171

8.4 Pulsar联邦查询  172

8.4.1 准备数据源  173

8.4.2 联邦查询  175

第9章 管理你的Pulsar  176

9.1 Pulsar安全配置  176

9.1.1 数据加密  176

9.1.2 授权与认证  180

9.1.3 自定义权限插件  186

9.2 Pulsar监控配置  189

9.2.1 Pulsar监控概述  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生态  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 统一接收器API  221

10.3.2 Flink Pulsar Sink API的

使用  221

10.3.3 PulsarSink原理  223

第11章 Pulsar应用实践  224

11.1 Pulsar应用模式  224

11.1.1 Pulsar数据总线概述  224

11.1.2 Pulsar数据集成  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 可靠性优先场景  239

11.5.1 幂等性、消息确认与

事务  239

11.5.2 可靠性与一致性  240

查看全部↓

前言/序言

【为什么要写本】

Pulsar是一个集消息传递、消息存储、轻量化函数式计算于一体的云原生流数据平台。Pulsar提供数据存储与消费能力,凭借优秀的架构设计、强大的可扩展性,在消息队列、流数据处理等多个领域被广泛使用。

笔者最初接触Pulsar时其社区版本是2.4,彼时的Pulsar已崭露头角。但当时关于Pulsar的中文资料相当少,更不用说中文图书了,很多问题需要通过求助于社区和阅读源码来解决。那时的Pulsar虽然优秀,但是对于初学者来说学习与使用成本较高。在实际项目中,笔者及团队伙伴使用Pulsar构建了数据服务,也发掘出Pulsar在工程实践中的价值。笔者在学习与工作的过程中有意识地整理了大量与Pulsar相关的资料。

Pulsar在2016年发布了第一个社区版本,经过多年的发展,越来越多的头部公司使用Pulsar来构建消息服务。截至本书写作时,Pulsar已经迭代到2.10版本,功能日益完善,社区生态方兴未艾。通过Pulsar,你不仅可以构建消息队列服务,还可以构建可靠的、高吞吐量的大数据应用,甚至可以为金融场景提供高可靠、高性能的服务支持。

关键词:

精彩推送

公司

5月29日,在500强企业对话山西主题论坛上,山西省太平洋煤层气研究院院长张遂安作了题为《树立正确的能源环

详细>>

近日,内蒙古自治区邮政管理局印发了《内蒙古自治区邮政快递业塑料污染治理三年行动方案(2023-2025)》(

详细>>

泡菜爽脆可口,很多人都非常喜欢吃。在四川,泡菜更是被誉为川菜之根,受到食客们热烈追捧,人们戏称它是“

详细>>

进入5月以来,受供应不足影响,六氟磷酸锂价格接连上涨,从不足10万元(吨价,下同)飙升至目前的14 8万~16

详细>>

记者从中国科学院、中国工程院网站获悉,2023年,两院院士增选工作启动。2023年度中国科学院院士增选指南、

详细>>

5月24日,国家药监局公布2023年医疗器械行业标准制修订计划项目,共包括117项医疗器械行业标准。其中,制定

详细>>