作者:Anonymitaet

编辑:Irene

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

 

EventStreaming Meetup No.1_分享

 

大量技术爱好者参与了此次干货满满的分享,并带来了多次热烈的讨论,以下是内容导航。

 

跨地域复制

 

翟佳

Pulsar 和 BookKeeper 的 Committer & PMC 成员

 

EventStreaming Meetup No.1_分享_02

 

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 语言爱好者

 

EventStreaming Meetup No.1_分享_03

 

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。

 

EventStreaming Meetup No.1_分享_04