阅读本文需要约 5 分钟。
2019 年 7 月 21 日,StreamNative 的 CEO 郭斯杰受邀参加 CSDI summit 分享,发表“Apache Pulsar: 云原生消息系统简介”主题演讲。本篇为演讲内容导航,干货满满,欢迎查看!
郭斯杰
Apache Pulsar 和 Apache BookKeeper PMC 成员
StreamNative 联合创始人
什么是 Apache Pulsar
Apache Pulsar 是灵活的发布-订阅消息系统(Flexible Pub/Sub messaging),采用分层分片架构(backed by durable log/stream storage)。
发布-订阅消息系统
郭斯杰先解释了发布-订阅模型的概念,从多租户、灵活的消息系统、云构架等方面着重介绍了 Apache Pulsar 的功能和特性。
多租户
租户和命名空间(namespace)是 Pulsar 支持多租户的两个核心概念。
-
在租户级别,Pulsar 为特定的租户预留合适的存储空间、应用授权与认证机制。
-
在命名空间级别,Pulsar 有一系列的配置策略(policy),包括存储配额、流控、消息过期策略和命名空间之间的隔离策略。
灵活的消息系统
Pulsar 做了队列模型和流模型的统一,在 Topic 级别只需保存一份数据,同一份数据可多次消费。以流式、队列等方式计算不同的订阅模型大大提升了灵活度。郭斯杰还介绍了智联招聘的用户案例,展现了 Pulsar 消息系统在使用上的灵活。
云原生架构
Pulsar 使用计算与存储分离的云原生架构,数据从 Broker 搬离,存在共享存储内部,上层是无状态 Broker,复制消息分发和服务,下层是持久化的存储层 Bookie 集群,而且 Pulsar 存储是分片的,这种构架可以避免扩容时受限制,实现数据的独立扩展和快速恢复。
此外,还介绍了 Pulsar 的分片存储模型和 Kafka 的物理分区存储模型在 Write、Tailing read、Catchup read 和 IO 隔离场景的区别。
跨地域复制
Pulsar 中的跨地域复制是将 Pulsar 中持久化的消息在多个集群间备份。在 Pulsar 2.4.0 中新增了复制订阅模式,在某个集群失效情况下,该功能可以在其他集群恢复消费者的消费状态,从而达到热备模式下消息服务的高可用。
Event Streaming
层级存储
郭斯杰介绍了层级存储的优势:
-
Infinite Stream: 以流的方式永久保存原始数据
-
分区的容量不再受限
-
充分利⽤云存储或者现有的廉价存储 ( 例如,HDFS)
-
数据统⼀表征:客户端无需关⼼数据究竟存储在哪⾥
A Pulsar view on data
Pulsar 将无界的数据看作是分片的流,分片分散存储在分层存储(tiered storage)、BookKeeper 集群和 Broker 节点上,而对外提供一个统一的、无界数据的视图。
下图是分片模型:
Pulsar 与大数据处理框架的集成
批处理是对有界的数据进行处理,通常数据以文件的形式存储在 HDFS 等分布式文件系统中。流处理将数据看作是源源不断的流,流处理系统以发布/订阅方式消费流数据。当前的大数据处理框架,例如 Spark、Flink 在 API 层和执行层正在逐步融合批、流作业的提交与执行,而 Pulsar 由于可以存储无限的流数据,是极佳的统一数据存储平台。郭斯杰介绍了 Pulsar 与 Flink 和 Spark 的集成状态,并对未来批流融合的处理存储系统进行了展望。
Pulsar Functions 及其他工具
Pulsar Functions 是一个轻量级的计算框架,可以给用户提供一个部署简单、运维简单、API 简单的 FASS(Function as a service)平台。Pulsar Functions 提供基于事件的服务,支持有状态与无状态的多语言计算,是对复杂的大数据处理框架的有力补充。
如下图所示,郭斯杰介绍了Pulsar IO、Pulsar CDC等。
用户案例
郭斯杰还介绍了 Apache Pulsar 的用户案例,以下是详细信息:
-
个推基于 Apache Pulsar 的优先级队列方案
-
Apache Pulsar在智联招聘的实践 -- 从消息队列到基于Apache Pulsar的事件中心
-
Apache Pulsar 在腾讯计费场景下的应用
-
雅虎日本如何用 Pulsar 构建日均千亿的消息平台
-
Apache Pulsar 在 EMQ 物联网平台产品 ActorCloud 上的应用
本次演讲视频,参阅
点击边框调出视频工具条
作者 | Irene
审校 | Yijie + Anonymitaet
编辑 | Irene
更多关于 Pulsar 的技术干货和产品动态,请关注 ApachePulsar 微信公众号。