链接: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,你不仅可以构建消息队列服务,还可以构建可靠的、高吞吐量的大数据应用,甚至可以为金融场景提供高可靠、高性能的服务支持。