10 月 11 日,在法国举行的 Hadoop User Group France 圆满结束,有 1500 多人出席参加了此次会议。Hadoop 技术交流社区每月会在法国(主要在巴黎)举办分享会。
此次法国交流之行,StreamNative 的 CEO 郭斯杰分享了 Apache Pulsar 的内容—— Building a unified data processing stack with Apache Pulsar and Apache Spark。
这次分享的内容主要有三部分:1. 什么是 Apache Pulsar ?
2. 通过甜橙金融的用户案例来进一步了解 Apache Pulsar
3. Apache Pulsar 2.5.0 功能介绍
前两部分内容已经分开做了整理,大家可以直接点击查看详情。以下会详细介绍 Apache Pulsar 2.5.0 的功能。
>>> Pulsar 事务支持
Pulsar 2.5.0 提供事务支持。目前,Pulsar 通过 Idempotent Producer 支持在单个 partition 中的 exactly-once 语义。Idempotent Producer 保证 Producer 发送的消息在不丢失的情况下仅会被持久化一次。但是,当 Producer 发送消息到多个 partition 时,不能保证消息发送的原子性。同样,Pulsar Functions 在处理多个事件或者输出一组结果到不同 topic partition 时,不能保证计算的原子性。PIP-31 通过增加对事务的支持来解决上述场景面临的问题。
>>> 命名空间变更流Pulsar 2.5.0 支持用户在 topic 级别配置相关策略。Pulsar 是一个多租户事件流系统,管理员可以通过在不同级别设置策略来管理租户和命名空间,retention、存储配额等策略只能在命名空间级别设置。在许多用例中,用户希望能在 topic 级别配置相关策略。>>> 可插拔协议处理机制Apache Pulsar 提供了许多组件,例如:load manager、namespace bundle distribution、topic lookup 和 streaming storage abstraction。在支持像 Kafka、AMQP 和 MQTT 协议时,这些组件复用性很好。
PIP-41 支持可插拔的协议处理机制,Apache Pulsar 将通过动态加载的方式更好的支持其他的消息协议。
>>> Pulsar managerApache Pulsar Manager 是一个基于网页的 GUI 管理和监控工具,帮助 Pulsar 管理员和用户管理和监控 Tenant、Namespace、Topic、Subscription、Broker 和 Cluster 等,并支持动态配置多种环境。想进一步了解 Pulsar Manager,可参考 Pulsar Manager 功能介绍 。>>> 生产者使用不同的模式发送消息
目前,生产者发送的 Schema 只能在创建时被指定,如果启用 AUTO_PRODUCE_BYTES,生产者也可以通过查找已有的 Schema 最新版本去发送消息。
开始生产消息之后,更新 Schema 会导致消息的 payload 和 Schema 不兼容。PIP-43 支持用不同的 Schema 发送消息。
>>> 可插拔元数据接口
该方案提供一个统一的可插拔的接口,抽象出 Pulsar 的元数据实现。重构后,默认仍然基于 ZooKeeper 来存储元数据,并且元数据仍然以相同的格式保存在同样的位置。一旦定义了接口,就可以实现多个元数据的存储。
当然以上只是选取了部分新增功能进行详解,后续 Apache Pulsar 的2.5.0 版本还会开发出更多实用的功能。
目前,Apache Pulsar 与多种项目已尝试融合并进行项目实战(更多详情,可参考 ????https://github.com/streamnative/awesome-pulsar)。
- Pulsar + Skywalking
- Pulsar + Elastic Beats
- Pulsar + Flink (1.9)
- Pulsar + Flume
- Pulsar + …
未来,我们期待更多的项目产品可以与 Apache Pulsar 一起为企业带来更高效率的产出。
- Apache Pulsar 是云原生的流数据存储
- 拥有两种读取 API 级别:发布/订阅+分段
- 可通过 Pulsar Schema 进行结构化事件流
- Pulsar 向外提供一个统一的数据视图
- Pulsar + Spark 构建一个批流一体的数据处理栈