新書推薦:
《
收尸人
》
售價:NT$
332.0
《
大模型应用开发:RAG入门与实战
》
售價:NT$
407.0
《
不挨饿快速瘦的减脂餐
》
售價:NT$
305.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:NT$
504.0
《
卫宫家今天的饭9 附画集特装版(含漫画1本+画集1本+卫宫士郎购物清单2张+特制相卡1张)
》
售價:NT$
602.0
《
化妆品学原理
》
售價:NT$
254.0
《
万千教育学前·与幼儿一起解决问题:捕捉幼儿园一日生活中的教育契机
》
售價:NT$
214.0
《
爱你,是我做过最好的事
》
售價:NT$
254.0
|
編輯推薦: |
本书抽丝剥茧,用生活实例轻松开启消息系统之旅,
溯本求源,介绍Pulsar的前世今生与灵感来源,
环环相扣,剖析Pulsar的四大组件和五大功能特性,
实战指导,展示实现最佳部署和运维的不二法宝。
|
內容簡介: |
本书专为想要学习并掌握Apache Pulsar的读者打造,是一本入门图书。全书共有13章内容。第1章和第2章,从生活实例中引入实时消息系统和事件驱动的概念,帮助大家理解Apache Pulsar系统存在的必要性,以及Pulsar的独特性和价值定位。第3章介绍了Pulsar在雅虎的起源故事、设计理念与应用场景。第4章探究了Pulsar内部的主要组件及其工作原理,帮助大家构建对Pulsar的整体架构认知。第5章到第10章,详细介绍了Pulsar消费者、生产者的工作原理,应用于生产和消费消息且与第三方系统交互的框架Pulsar IO,以及Pulsar Functions、分层存储、Pulsar SQL等Pulsar的独特理念和关键特性。第11章与第12章,展示了如何在诸多环境中部署Pulsar,以及在运维Pulsar的过程中需要关注的指标。在第13章中,作者结合个人经验阐述了Pulsar未来值得探索的领域和方向。 本书配图生动形象,实例丰富,不仅提供了很多代码示例,还提供了多篇附录,以作参考。
|
關於作者: |
Jowanza Joseph 是一位就职于 Finicity 的软件工程师,他负责领导 Finicity 开放银行平台的网格开发。Jowanza 曾在多个项目中使用 Apache Pulsar,并利用基于 Pulsar 构建的全托管消息和流处理平台实现了日均处理十亿量级的消息。近十年中, Jowanza 在 Pluralsight 等公司的工作中都使用过Apache Kafka、Akka、Kubernetes 及其他流技术与消息技术。他还曾在 Strange Loop、Abstractions、开源峰会及 O’Reilly 的 Strata Data & AI 大会上做过技术分享。蔡正昕,曾在亚马逊工作, Pulsar 活跃贡献者。后来加入了 StreamNative,成为 Cloud 工程师。
蔡正昕,软件工程师。曾在亚马逊,Streamnative等公司任职,从事数据处理系统和云服务控制面的开发。19年开始关注Apache Pulsar社区并参与讨论,漏洞修复和特性开发。对Apache Pulsar,Apache BookKeeper,以及在K8S环境中运维有状态系统有比较深入的理解。
王殿进,目前在 StreamNative 负责 Apache Pulsar 社区与市场工作。曾在云计算厂商、SaaS 公司从事过开发者社区运营与用户增长工作。
徐文涛,曾任Talkdesk 知识管理工程师,为多个企业级 SaaS、CCaaS 与 PaaS 产品撰写并审核英文文档。曾任某世界五百强本地化团队终审负责人,原 KubeSphere 开源容器平台本地化、文档与内容策划负责人。曾获美国 DZone 专栏银牌作家,人事部 CATTI 二级口译、二级笔译,联合国 UNLPP 二级笔译,Linux 基金会认证 Kubernetes 管理员 (CKA)、应用开发者 (CKAD) 与安全专家 (CKS)等行业资格或荣誉。
|
目錄:
|
前言 ....................................................................................................xvii
第 1 章 实时消息的价值 ........................................................................ 1
流动的数据 ............................................................................................................1
资源效率 ................................................................................................................3
使用场景 ................................................................................................................4
银行 .................................................................................................................5
医疗 .................................................................................................................6
安全 .................................................................................................................7
物联网 .............................................................................................................8
小结 .....................................................................................................................10
第 2 章 事件流和事件代理 ................................................................... 11
发布 / 订阅 ........................................................................................................... 11
队列 .....................................................................................................................13
故障类型 ..............................................................................................................15
推送与轮询 ..........................................................................................................15
为什么需要 Pulsar ................................................................................................16
流和队列的统一 ............................................................................................16
模块化 ...........................................................................................................16
性能 ...............................................................................................................18
小结 .....................................................................................................................19
第 3 章 认识 Pulsar ............................................................................ 20
Pulsar 的起源 .......................................................................................................20
Pulsar 的设计理念 ................................................................................................21
多租户 ...........................................................................................................22
跨地域复制 ...................................................................................................23
性能 ...............................................................................................................27
模块化 ...........................................................................................................27
Pulsar 生态 ...........................................................................................................28
Pulsar Functions ............................................................................................28
Pulsar IO .......................................................................................................29
Pulsar SQL ....................................................................................................30
Pulsar 成功案例 ...................................................................................................30
雅虎日本 .......................................................................................................30
Splunk ...........................................................................................................31
Iterable ..........................................................................................................32
小结 .....................................................................................................................33
第 4 章 Pulsar 内部组件 ..................................................................... 34
Broker ..................................................................................................................34
消息缓存 .......................................................................................................35
与 BookKeeper、ZooKeeper 交互 .................................................................37
Schema 校验 ..................................................................................................38
Broker 间的通信 ............................................................................................38
Pulsar Functions 和 Pulsar IO ........................................................................39
Apache BookKeeper .............................................................................................39
预写式日志 ...................................................................................................45
消息存储 .......................................................................................................45
对象 /Blob 存储 .............................................................................................46
Pravega ..........................................................................................................47
Majordodo .....................................................................................................47
Apache ZooKeeper ...............................................................................................48
命名服务 .......................................................................................................49
配置管理 .......................................................................................................49
选主 ...............................................................................................................50
通知系统 .......................................................................................................50
Apache Kafka ................................................................................................50
Apache Druid .................................................................................................51
Pulsar Proxy .........................................................................................................52
Java 虚拟机(JVM) .............................................................................................53
Netty ..............................................................................................................54
Apache Spark .................................................................................................55
Apache Lucene ..............................................................................................55
小结 .....................................................................................................................55
第 5 章 消费者 .................................................................................... 56
成为消费者意味着什么 ........................................................................................56
订阅 .....................................................................................................................57
独占 ...............................................................................................................60
共享 ...............................................................................................................61
键共享 ...........................................................................................................62
故障转移 .......................................................................................................65
确认 .....................................................................................................................66
单条确认 .......................................................................................................66
累积确认 .......................................................................................................67
Schema .................................................................................................................67
消费者 Schema 管理 .....................................................................................68
消费模式 ..............................................................................................................68
批处理 ...........................................................................................................68
分块 ...............................................................................................................69
高级配置 ..............................................................................................................70
延迟消息 .......................................................................................................70
保留策略 .......................................................................................................70
堆积限额 .......................................................................................................71
配置消费者 ..........................................................................................................72
回放 ...............................................................................................................73
死信主题 .......................................................................................................75
重试主题 .......................................................................................................76
小结 .....................................................................................................................76
第 6 章 生产者 .................................................................................... 77
同步生产者 ..........................................................................................................77
异步生产者 ..........................................................................................................78
生产者路由 ..........................................................................................................79
轮询路由 .......................................................................................................79
单分区路由 ...................................................................................................80
定制分区路由 ................................................................................................81
生产者配置 ..........................................................................................................83
topicName .....................................................................................................83
producerName ...............................................................................................83
sendTimeoutMs .............................................................................................83
blockIfQueueFull ...........................................................................................84
maxPendingMessages ....................................................................................84
maxPendingMessagesAcrossPartitions ...........................................................84
messageRoutingMode ....................................................................................84
hashingScheme ..............................................................................................84
cryptoFailureAction .......................................................................................85
batchingMaxPublishDelayMicros ..................................................................85
batchingMaxMessages ...................................................................................85
batchingEnabled ............................................................................................85
compressionType ...........................................................................................85
Schema on Write ..................................................................................................86
使用 Schema Registry ....................................................................................86
非持久化主题 ......................................................................................................89
使用场景 .......................................................................................................90
使用非持久化主题 ........................................................................................90
事务 .....................................................................................................................91
小结 .....................................................................................................................92
第 7 章 Pulsar IO ............................................................................... 93
Pulsar IO 架构 ......................................................................................................93
运行时 ...........................................................................................................94
性能考量 .......................................................................................................94
使用场景 ..............................................................................................................95
简单事件处理管道 ........................................................................................95
变化数据捕获 ................................................................................................96
考量 .....................................................................................................................97
消息序列化 ...................................................................................................97
管道稳定性 ...................................................................................................97
故障处理 .......................................................................................................98
示例 .....................................................................................................................99
Elasticsearch ..................................................................................................99
Netty ............................................................................................................ 100
创建自己的连接器 ............................................................................................. 101
TimescaleDB ............................................................................................... 101
小结 ................................................................................................................... 102
第 8 章 Pulsar Functions .................................................................. 103
流处理 ................................................................................................................ 103
Pulsar Functions 架构 ......................................................................................... 105
运行时 ......................................................................................................... 105
隔离性 ......................................................................................................... 106
在 Kubernetes 上部署 Pulsar Functions 的隔离性 .............................................. 107
使用场景 ............................................................................................................ 107
创建 Pulsar Functions .................................................................................. 108
简单事件处理 .............................................................................................. 108
主题清理 ..................................................................................................... 110
主题数据统计 .............................................................................................. 113
小结 ................................................................................................................... 115
第 9 章 分层存储 .............................................................................. 116
在云端存储数据 ................................................................................................. 117
对象存储 ..................................................................................................... 118
使用场景 ............................................................................................................ 120
复制 ............................................................................................................. 120
CQRS .......................................................................................................... 121
灾难恢复 ..................................................................................................... 122
卸载数据 ............................................................................................................ 122
Pulsar Offloader ........................................................................................... 122
检索已卸载的数据 ............................................................................................. 129
与对象存储数据交互 ................................................................................... 129
重填主题 ..................................................................................................... 129
使用 Pulsar 客户端 ...................................................................................... 130
小结 ................................................................................................................... 131
第 10 章 Pulsar SQL ........................................................................ 132
流即表 ................................................................................................................ 133
SQL-on-Anything 引擎 ...................................................................................... 135
Apache Flink: 另一种视角 ........................................................................... 136
Presto/Trino ................................................................................................. 137
Pulsar SQL 的工作原理 ...................................................................................... 138
配置 Pulsar SQL ................................................................................................. 140
性能考量 ............................................................................................................ 142
小结 ................................................................................................................... 143
第 11 章 部署 Pulsar ........................................................................ 144
Docker ................................................................................................................ 144
裸金属 ................................................................................................................ 146
最低要求 ..................................................................................................... 146
开始安装 ..................................................................................................... 146
部署 ZooKeeper........................................................................................... 147
启动 BookKeeper ........................................................................................ 148
启动 Pulsar .................................................................................................. 148
公有云厂商 ........................................................................................................ 149
AWS ............................................................................................................ 151
Azure ........................................................................................................... 152
Google Cloud Platform ................................................................................ 153
Kubernetes ......................................................................................................... 153
小结 ................................................................................................................... 155
第 12 章 运维 Pulsar ........................................................................ 156
Apache BookKeeper 指标 .................................................................................. 157
服务器指标 ................................................................................................. 157
Journal 指标 ................................................................................................ 158
存储指标 ..................................................................................................... 159
Apache ZooKeeper 指标 ..................................................................................... 159
服务器指标 ................................................................................................. 160
请求指标 ..................................................................................................... 161
主题指标 ............................................................................................................ 161
消费者指标 ........................................................................................................ 163
Pulsar 事务指标 ................................................................................................. 163
Pulsar Functions 指标 ......................................................................................... 164
高级运维技巧 .................................................................................................... 165
拦截器和追踪机制 ...................................................................................... 165
Pulsar SQL 指标 .......................................................................................... 167
指标转发 ............................................................................................................ 169
监控面板 ..................................................................................................... 169
小结 ................................................................................................................... 170
第 13 章 未来 ................................................................................... 171
编程语言支持 .................................................................................................... 171
扩展接口 ..................................................................................................... 171
增强 Pulsar Functions .................................................................................. 172
架构简化 / 扩展 ........................................................................................... 175
消息平台桥接器 .......................................................................................... 177
小结 ................................................................................................................... 180
附录 A Pulsar Admin API ................................................................. 181
附录 B Pulsar Admin CLI ................................................................. 189
附录 C 跨地域复制 ........................................................................... 192
附录 D Pulsar 中的安全、认证和鉴权 ............................................... 198
关于作者 ............................................................................................ 202
封面介绍 ............................................................................................ 202
|
內容試閱:
|
译者序
开源势头正劲,云原生风起云涌。Apache Pulsar这款开源的云原生消息流系统,在过去几年间逐渐被国内大数据圈的开发者所认识。
Apache Pulsar提供了统一的消费模型,支持消息队列和流两种场景,既能为队列业务提供企业级的读写服务质量和强一致性保障,又能为流业务提供高吞吐、低延迟。同时,得益于存储、计算分离的云原生架构设计,以及支持大集群、多租户、百万级Topic、跨地域数据复制等关键特性,Apache Pulsar在越来越多的行业和企业落地。在Apache Pulsar官网和多样的社区活动中,你可以找到更多应用案例。
从时间、社区生态等多个维度来看,可以说Pulsar是一个“既老又新”的开源项目。雅虎团队于2013年立项研发Pulsar原型,于2016年将其开源,不久后将Pulsar捐赠给Apache软件基金会进行项目孵化。Pulsar最终于2018年“毕业”,成为顶级项目。截止到2023年Pulsar已有10年的演进历史。不过,目前Pulsar仍在维护中,Pulsar生态还在拓展,相关社区还在壮大,整体仍在成长,开发者的认知也仍待提升。
在云原生时代,Pulsar的存算分离架构和诸多企业级功能都是核心亮点,但开发者要想入门和掌握好Pulsar还有一定的难度。除了官网文档,目前与Pulsar相关的中文书籍还很少,引入海外的Pulsar图书不失为一种更加快速、高效的方式。由OReilly出版、Jowanza Joseph所著的Mastering Apache Pulsar就是一本专为帮助开发者入门和掌握Pulsar而编写的实用指南。
我们很荣幸能够共同协作,承担本书的翻译工作。本书三位译者曾是同事,过去同在一家全球性Pulsar技术创业团队工作过,均在Apache Pulsar社区深度从事过代码开发或社群运营、内容创作等相关工作,对Pulsar不仅十分熟悉还充满了感情。在翻译分工中,蔡正昕负责翻译本书第1—8章、王殿进负责翻译第9—13章,徐文涛负责翻译本书多篇附录及其他内容。翻译完成后,译稿最终由文涛负责统筹全书技术术语、校对文法表达,以保证全书的翻译质量。
大家牺牲个人时间,经过数月的协同工作完成了全书翻译。虽然我们已拼尽全力,但无法确保每处译文都尽善尽美。书中如有不足之处,希望读者谅解并给予反馈。
最后,我们希望大家能够喜欢这本书,在阅读过程中有所收获。祝你有一个愉快的Apache Pulsar之旅,祝福Apache Pulsar越来越好!
蔡正昕 王殿进 徐文涛
2023年11月
推荐序
作为Apache Pulsar项目管理委员会(PMC)成员和长期从事Apache Pulsar代码开发与布道工作的一员,我为给这本书作序而深感荣幸。我亲眼见证了Pulsar在过去三四年的时间里取得的瞩目成绩:全球贡献者数量不断增长,当前已超过600人;用户规模快速增长,越来越多的企业开始采用Pulsar并将其应用于关键业务。这些成就是Pulsar团队和社区成员共同努力的结果,我对此感到无比自豪和感激。
Pulsar作为一款分布式、开源的云原生消息和流处理平台,已经展现出了强大的实力。它不仅拥有存储和计算分离的架构设计,具备高性能、高可扩展和高可靠性,而且提供灵活的消息模型,具有大集群、跨区域复制等关键特性,可以轻松地与上下游组件打通、集成,以发挥其关键基础设施的作用。
Pulsar的出现和普及,也促进了云原生技术在消息和流存储方向的发展和更多项目的转变。随着Pulsar的日益普及,我们需要一本系统性的入门指南来帮助开发者、架构师、大数据从业者等群体更好地学习和掌握Pulsar的系统原理、功能及组件。
我很高兴看到由正昕、殿进和文涛三人合作翻译的《精通 Apache Pulsar:可伸缩云原生事件流实践》即将出版。他们曾是我所在创业团队的优秀成员,也都长期参与Apache Pulsar项目开发、社区运营等一线工作,我相信这本书会给Pulsar社区的发展增加新的动力。
在阅读本书的过程中,可以感受到作者的用心及其对Pulsar技术的热爱,尤其是翻译贴切流畅,让这本书的亮点更加突出。书中不仅有很多的技术“干货”,众多贴近现实的例子也让艰涩的技术概念变得易于理解。书中的每个章节都紧扣主题,从Pulsar的诞生背景、起源到设计理念,从生态到内部组件,从原理剖析到部署运维,以及对Pulsar未来发展的畅想,内容设计合理,层层递进,深入浅出。
我相信,不论你是Pulsar新手,还是有经验的开发人员,这本书都能够帮助你更好地理解Pulsar的内部机制,从作者宝贵的经验与洞察中有所收获。读书不在多,贵在精。《精通Apache Pulsar》这本书就是一本入门和了解Pulsar的好书。
最后,我希望本书能帮助你顺利入门Apache Pulsar,并在探索Pulsar的这条道路上越走越远,发现更多的可能。祝愿《精通Apache Pulsar》取得成功,为Pulsar的生态和社区繁荣做出贡献!同时,我也期待看到更多的开发者和用户加入Apache Pulsar社区,共同推动这个开源项目的持续进步和发展。
翟佳
Apache 软件基金会成员,Apache Pulsar PMC成员,StreamNative联合创始人,上海谙流科技 特别顾问
2023年11月于北京
|
|