作者:Irene
编辑:Irene
2019 年 6 月 22 日,蚂蚁金服在北京举办主题为“ 下一代计算”的 meetup。我司 CEO 郭斯杰受邀参加本次分享,发表“使用 Pulsar Functions 进行无服务器化的事件流计算”主题演讲。本篇为演讲内容导航,干货满满,欢迎查看!
郭斯杰
StreamNative 联合创始人、Apache Pulsar、Apache BookKeeper Committer 和 PMC 成员
![[Recap] Ray Forward Meetup - Ant Financial_flink](https://s2.51cto.com/images/blog/202201/04095048_61d3a7f869bd140017.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
什么是 Apache Pulsar ?
Apache Pulsar 是灵活的发布-订阅消息系统(Flexible Pub/Sub messaging),采用分层分片架构(backed by durable log/stream storage)。郭斯杰从发布-订阅模型、多租户、灵活的消息系统、云构架等方面介绍了 Apache Pulsar 的功能和特性。
Pulsar 的数据处理方法:事件流处理
![[Recap] Ray Forward Meetup - Ant Financial_spark_02](https://s2.51cto.com/images/blog/202201/04095048_61d3a7f8d7b8418077.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
上图是 Apache Pulsar 的 MSP (消息-处理-流存储)模型
消息:
- 多语言客户端
- Pulsar IO
- CDC
流存储:
- 云原生存储
- 低延迟存储
处理:
- 交互式查询
- 流处理&批处理
Pulsar 的差异化亮点
编程模型
1.Pulsar Functions
在 Pulsar 2.0里引入 Pulsar Functions。它是处理数据的一个通用的无服务器化的事件流架构,是轻量化计算引擎。基于 event-first & stream-first 逻辑。如下图所示, Pulsar Functions 能够支持很多语言,不需要有 SDK。
![[Recap] Ray Forward Meetup - Ant Financial_html_03](https://s2.51cto.com/images/blog/202201/04095049_61d3a7f93f46a64219.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
2. Function Context
- Logger
- State
- Metrics
- Security / Secrets
3. 灵活的运行时
- 与 Broker 同步进行
- 部署 Managed Function Workers
- 与外部调度程序(目前支持 Kubernetes )交互
4. 事件路由
5. 自动负载均衡
6. 与 pulsar-admin CLI 融合
架构
![[Recap] Ray Forward Meetup - Ant Financial_css_04](https://s2.51cto.com/images/blog/202201/04095049_61d3a7f9991ef91092.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
1. 以 Stream-First 为处理原则
2. 不依赖外部系统,最大化利用自身架构
3. 主要构成:
- Function Metadata Topic
- Function Worker membership and coordination
- Function Assignment
使用案例
1. 内容路由(content routing)
2. 消息过滤(message filtering)
3. 转换(transformation)
4. 报警和阈值(alert and thresholds)
5. 复杂事件处理管道(complex event processing pipelines)
总结
Pulsar Functions 是 Pulsar 内无服务器化的事件流计算的一种方式,使用灵活,简单易用。以 Event-first & Stream-first 为原则,兼顾有状态和无状态。运行时间灵活,良好的数据局部性,可进行复杂数据处理。
演讲 PPT,请参阅:
https://www.slidestalk.com/s/ServerlessEventStreamingwithPulsarFunctions
视频回顾(03:08:30开始):
https://tech.antfin.com/community/activities/698/live
福利推荐
Apache Pulsar 是下一代云原生分布式流数据平台,它源于 Yahoo,2016 年 12 月开源,2018 年 9 月正式成为 Apache 顶级项目,逐渐从单一的消息系统演化成集消息、存储和函数式轻量化计算的流数据平台。在 Apache Pulsar 快速发展的过程中,社区的伙伴们也致力于硅谷以外的布道之旅,在中国社区开始了不平凡的历程。6 月 29 日,来自腾讯和 Pulsar 社区的开源爱好者们将齐聚一堂,共同探讨 Pulsar 最新动态,包括:
1. Apache Pulsar 发展历史和用户案例。
2. Apache Pulsar 2.4.0 新功能。
3. Flink 在腾讯的实践,Flink 和 Pulsar 的集成应用。
4. Pulsar 和 Spark 批流融合的数据存储和分析平台。
5. Pulsar IO 运行原理与周边生态。
6. Go Functions 的设计与实现。
![[Recap] Ray Forward Meetup - Ant Financial_spark_05](https://s2.51cto.com/images/blog/202201/04095049_61d3a7f9eea8c8435.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
















