关于 Apache Pulsar
Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐以及低延时的高可扩展流数据存储特性。

本篇文章,我们将带着刚刚圆满结束的 Pulsar Summit 精华版内容,为大家分享 Apache Pulsar 的成长历史。

关于 Pulsar Summit 会议

本次 Pulsar Summit 主要是由 StreamNative 和 Splunk 主办,集结了来自欧洲、亚洲、北美洲众多国际大厂的 CEO、开发人员、数据架构师等。

还有来自 Pulsar Committer、Contributor 的实战经验分享,涉及发布/订阅消息、事件流、无服务器计算、实时分析、事件驱动应用程序和管理生产中的关键任务等最佳实践。

Pulsar 项目的成长

Pulsar 最初是以「集消息和事件流为一体的云原生平台」出现在众人面前。Pulsar 项目的支撑不仅仅是地域性的,其实更是一个全球性的开源项目,达到了几大洲用户/使用率同步增长的效果。
image

很多国际性公司,比如 Splunk、Narvar、Instructure、腾讯、虎牙等,这些公司大多看中了 Pulsar 的独特性能,开始用 Pulsar 替代之前的系统进行部署自己的产品,也通过他们的用户扩大了 Pulsar 项目影响力和社区活跃度,使 Pulsar 获得了更多关注。

image

想要获取更多使用 Pulsar 来部署自己产品的公司列表,可以参考:
https://pulsar.apache.org/en/powered-by/

Pulsar 优势

同时,在年初我们整理「Pulsar 年度报告」时,也总结出了 Pulsar 的一些优势,比如:

  • 可以增加产品敏捷性,让公司快速应对市场变化;
  • 为业务开发解锁新的使用方向;
  • 降低开发成本以及改进客户体验等。

Apache Pulsar 用其差异化特色吸引了越来越多的用户。

在调查中也发现,Pulsar 云原生、存储与计算分离和以分片为中心的架构设计,是用户最喜爱的亮点。还有可强伸缩性和高弹性,Pulsar 真的是把 MQ行业的特点拿捏的恰到好处呢,费用不太高还很能干,性价比超高的好嘛!!
image

我们在收集 Pulsar 用户案例时也发现,大部分用户将 Pulsar 用作打造异步应用程序、核心项目等实践,或者是从 Kafka 等项目迁移到 Pulsar 来构建 ETL 流水线(提取、转换、加载)操作等。这也是目前 Pulsar use case 的核心使用场景。

同时在个人使用用户中,大家使用最多的功能:比如 Pub/Sub、多租户、跨区域复制、Pulsar Functions 和 Connectors、分层存储,都成为用户青睐的特点,说明 Pulsar 也有其不可替代之处,更多的实用特点还等着大家一起去开发鸭!

社区成长

我们在之前很多时候都是在介绍 Pulsar 产品的一些动态,或者技术上的一些更新发布,很少会去提 Pulsar 整个社区的动态。

其实从 2019 年 1月开始,到现在 2020 年 6 月份左右,contributor 的数量从 48 人增加到 280 人左右,18 个月的时间达到了 7 倍级的数量增长。从数据增长上,我们也很感谢大家的参与和项目支持!

Pulsar 的未来

从最开始的项目孵化到现在,基础层面的代码基本没有改动过,一直执行着它「分层分块」架构的模型。在产品方面,Pulsar 的工程师们致力于将最好的基础设施让用户们去构建消息系统。

同时,在社区里聆听和接纳用户们的不同需求和建议,对 Pulsar 产品进行一代又一代的更新和完善。

从一开始的分层存储 Pub-Sub 开始搭建,添加 Schema 让整个数据变得更加结构化;添加 Functions 让 Pulsar 拥有实时流数据的处理能力;添加 Connector 让 Pulsar 可以与第三方系统更简易化对接;引入 SQL,可以使用 SQL 语言在 Pulsar 里查询数据等等。

这些都是 Pulsar 产品的大进步。

Pulsar Message

Pulsar 作为一个消息中间件,它的目标一直都是提供最核心的消息发布和订阅,让用户使用不同的协议、语言,从不同的地方来生产和消费消息。

对于消息协议的支持,Pulsar 最近也是在不停地拓展。比如已经开源的 KoP(Kakfa on Pulsar)AoP(AMQP on Pulsar)。这些我们之前都发布过文章,大家可以点击文字直接跳转查看。

当然,之后我们也会开源出 MoP(MQTT on Pulsar),让 Pulsar 可以更加方便地支持这些不同类型的消息协议。

同时关于一些新功能也都在扩展中,比如事务支持、REST API 的生产和消费、只读 broker 、exclusive producer、自动扩缩容等等。这些都会逐渐在未来版本中一一呈现。

Pulsar Storage

在存储方面,Pulsar 也在致力成为流数据存储平台,基本都是围绕在性能、可操作性和成本开销方面去进行开发,使 Pulsar 和 BookKeeper 作为高效平台在不同环境中运行。比如说云端存储或者持久化部署。

但其实从存储层面看的话,Pulsar 的每一个大版本都围绕存储做了改进,也奠定了存储和计算分离的功能。

  • 分布式 log:基础存储
  • Schema:结构化存储
  • 分层存储:无限流容量
  • Topic 压缩:表和流二元表达
  • Key-Value:函数状态访问

包括新增的 Columnar Offloader、State store 等功能,也在存储层面为 Pulsar 的功能性添砖加瓦。

Pulsar Processing

有了消息和存储后,为了让收集到 Pulsar 的数据有价值,就需要计算过程了。Pulsar 在计算层面主要是想做到实时、大规模地处理事件流。

  • 利用 Pulsar Functions,可以实现更轻量级/无服务器的计算
  • 利用 Pulsar-Flink/Spark 集成集合,可以进行批量复杂地流处理计算
  • 利用 Pulsar SQL 在 Pulsar 里进行 SQL 或 Presto 语言的交互式查询

同时 Pulsar 也在开发 event storage API 接口,可以方便用户直接访问 Pulsar storage,用同一套接口就可以实现搭建 Pulsar-Flink/Spark 等集成应用。

除了在计算方面跟其他系统打造集成外,Pulsar 也在 Functions 上做足了功课。接下来的版本更新中,可能会针对 Functions 更新以下功能:

  • 可插拔的语言运行
  • Function registry

    • 共享和重用功能
  • 可操作性

    • 版本控制功能
    • 升级/回滚
    • A / B测试
  • Connectors(批处理/流连接器)

为了使用户可以更容易地使用 Pulsar,也诞生了很多 managements tool。比如前期的 Pulsar Manager、Pulsarctl、Pulsar Helm Chart 等等。

更多 Pulsar 管理工具,大家可以在 StreamNative Hub 进行查看和使用:https://hub.streamnative.io

Q & A

Q:组合 Function(Function Mesh)会添加么?
A:目前这个功能的内部实现已经有雏形了,会在接下来的时间内开源出此项目,敬请期待。

Q:消息轨迹这个功能,后续会支持吗?
A:Pulsar 可能不会直接支持消息轨迹,但可能会通过添加命令的方式去追踪实现。

Q:Presto SQL 查询 BookKeeper 里面的消息,会对正在生产消费的消息有多大性能影响?读 BookKeeper 会影响写性能吗?
A:对于正在生产的消息,不会有太大的影响。

Q:Pulsar 以后会出商业版本吗,定向支持金融企业?
A:Pulsar 目前核心的功能还是开源的状态,跟企业相关的安全特性会以插件的方式去实现。后期会出商业化版本。

总 结

本次分享,主要是由 Pulsar Summit opening keynote 内容,向大家简单概括了关于 Pulsar 的一些功能性、概念性的细节。希望通过此次分享,可以让大家更清楚的了解 Pulsar 在生产使用中的目的和效果。

如需查看更多细节,可以点击回放视频进行查看。


ApachePulsar
192 声望939 粉丝

Apache软件基金会顶级项目,下一代云原生分布式消息系统