作者:Anonymitaet
编辑:Irene
2019年5月11日,StreamNative 在北京举办了 EventStreaming 第1场技术沙龙,本次沙龙主要介绍了 Apache Pulsar Geo-Replication 和 Apache Pulsar Functions 的功能概览和技术细节。

大量技术爱好者参与了此次干货满满的分享,并带来了多次热烈的讨论,以下是内容导航。
跨地域复制
翟佳
Pulsar 和 BookKeeper 的 Committer & PMC 成员

Apache Pulsar 在设计之初加入了对 Yahoo 全球逾十个机房的跨地域复制(Geo-replication)需求。Apache Pulsar 跨地域的多机房互备特性,是 Pulsar 企业级特性的重要组成部分,它在保证数据稳定可靠的同时,为用户提供了便捷的操作和管理。
Apache Pulsar 的跨地域复制从 2015 年开始,经历了 Yahoo 线上大规模数据的检验,保障了 Yahoo 全球逾十个跨地域机房中部署的邮件、财经、广告、Sherpa 等多个主要系统的可用性,整个系统服务了超过 140 万个主题,每天在多个数据中心复制上千万亿条消息。
翟佳详细介绍了 Apache Pulsar 和 Apache Pulsar Geo-replication,包括以下内容:
1. Pulsar
1.1 Pulsar 的历史
1.2 Pulsar 统一模型
1.3 存储和服务分离
1.4 企业级特性
2. Geo-Replication
2.1 简介
2.2 工作原理
-
数据通路(包括 Topic、Producer、Consumer、订阅和机房间数据通路等)
-
元数据(包括 ZooKeeper、配置存储和多租户等)
2.3 管理和实践
-
Backlog 管理
-
限流
-
存储容量
2.4 工作模式
-
全联通
-
主备
-
聚合
-
同步复制
演讲 PPT,参阅 https://www.slidestalk.com/s/20190511StreamNativeMeetupBJGeoreplication83732。
另外,翟佳演示了如何进行跨地域复制操作,即通过 docker-compose 的方式搭建了跨三个集群的 Pulsar 环境,并在三个集群中演示 Pulsar 的跨地域复制。
更多关于跨地域复制功能原理的信息,参阅 Apache Pulsar 跨地域复制介绍。
Functions
冉小龙
Apache Pulsar Contributor、Go 语言爱好者

Apache Pulsar 是云原生新一代的消息系统和实时处理平台,消息系统和实时计算平台关系紧密,但经常被分离地松散地部署和管理,Functions 作为 Pulsar 的计算组件,是消息和计算平台在 Serverless 方向的一个融合和创新。
Functions 提供了 Java/Python/Go 等多语言的支持,以及线程/进程/K8s runtime 等,这为用户编写、运行和部署 Functions 提供了良好的灵活性,并让用户只需关心真正计算的逻辑,无需复杂的配置或管理,因此能更便捷地构建基于消息触发的流平台。
冉小龙深入介绍了 Apache Pulsar Functions,包括以下内容:
1. 概览
1.1 Functions 的优势
-
部署简单
-
接口简单
-
流原生
1.2 Functions 的架构
1.3 Functions 的执行流程
2. 使用场景
2.1 ETL
2.2 数据增强
2.3 数据过滤
2.4 动态路由
2.5 报警和阈值
3. 部署与使用
3.1 支持 Java/Python/Go Functions
3.2 Functions 如何工作?
-
LocalRun 模式
-
Cluster 模式
3.3 Functions CLI
-
Java/Python/Go Functions 示例
-
Functions 的实现方式
3.4 Window Functions
4. 调试
4.1 Pulsar-admin CLI 工具
4.2 Log Topic
5. 语义
5.1 Processing Guarantees
-
At-most-once
-
At-least-once
-
Effectively
5.2 资源
5.3 Functions 订阅类型
-
Share
-
Failover
6. Runtime
6.1 部署(线程/进程/K8s runtime)
6.2 实现
7. Worker
7.1 架构
7.2 Metadata Topic
7.3 Assignment Topic
7.4 Coordination Topic
7.5 调度器
演讲 PPT,参阅 https://www.slidestalk.com/s/2019_05_11_StreamNative_Meetup_BJ_Pulsar_Functions。