Apache Pulsar Introduction

Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体。Pulsar 于 2016 年由 Yahoo 开源并捐赠给 Apache 软件基金会进行孵化,2018 年成为Apache 软件基金会顶级项目。

Pulsar 采用计算与存储分离的分层架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐以及低延时的高可扩展流数据存储特性。本次分享将介绍 Apache Pulsar 的功能特性,及社区参与、未来发展等内容。

展开查看详情

1.Apache Pulsar 云原⽣时代的消息平台 翟佳

2.⾃我介绍 • 开源项⽬爱好者: • Apache Pulsar PMC成员 • Apache BookKeeper PMC成员 • EMC -> StreamNative • 华中科⼤ -> 中科院计算所 streamnative.io

3.• Apache Pulsar 简介 • Pulsar 的根本不同 • Pulsar 的云原⽣架构 • Pulsar 的⽣态和社区

4.Apache Pulsar 简介 streamnative.io

5.Apache Pulsar 是什么 streamnative.io

6.Apache Pulsar 要解决的问题 • 企业需求和数据规模 • 多租户 - 百万Topics - 低延时 - 持久化 - 跨地域复制 • 解除存储计算耦合 • 运维痛点:替换机器、服务扩容、数据 rebalance • 减少⽂件系统依赖 • 性能难保障: 持久化(fsync)、⼀致性(ack: all)、多Topic • IO不隔离:消费者读Backlog的时候会影响其他⽣产者和消费者 streamnative.io

7.Apache Pulsar 特性 • 云原⽣架构: • 存储计算分离 • 分层 + 分⽚ • ⾼性能 + 强⼀致性 • ⽀持统⼀的 Queue 和 Stream 的接⼝。 • 丰富的企业级特性 • 多租户隔离 — 百万Topics — 跨地域复制 — 鉴权认证 streamnative.io

8.• Apache Pulsar 简介 • Pulsar 的根本不同 • Pulsar 的云原⽣架构 • Pulsar 的⽣态和社区

9.• Apache Pulsar 简介 • Pulsar 的根本不同 • 统⼀消费模型 • 企业级特性 • 分层分⽚架构

10.统⼀消费模型 streamnative.io

11.统⼀消费模型 • Exclusive • Failover • Shared • Key-Shared streamnative.io

12.统⼀消费模型 — 订阅 Broker Subscription1 Producer Topic … Write Ack Subscription2 Consumer readEntries ManagedLedger + Cursor Ack/N-Ack 1 2 3 4 5 6 7 1 2 3 4 5 6 7 -/+ BookKeeper 1 2 3 4 5 6 7 A B C D E Ledger stores Data Ledger stores Cursor changes streamnative.io

13.• Apache Pulsar 简介 • Pulsar 的根本不同 • 统⼀消费模型 • 企业级特性 • 分层分⽚架构

14.企业级特性 streamnative.io

15.跨地域复制 Beijing Shanghai Producer Producer (P1) Topic (T1) Topic (T1) (P2) Consumer SubscripEon (S1) SubscripEon (S1) Consumer (C1) (C2) Broker原⽣ Pub/Sub⼀体 Producer Topic (T1) 管理简单 (P3) 配置灵活 Guangzhou streamnative.io

16.• Apache Pulsar 简介 • Pulsar 的根本不同 • 统⼀消费模型 • 企业级特性 • 分层分⽚架构

17.分层:存储计算分离 分层架构: • 节点对等 • 独⽴扩展 • 灵活容错 • 快速扩容 streamnative.io

18.分⽚:逻辑分区 + 物理分⽚ streamnative.io

19.• Apache Pulsar 简介 • Pulsar 的根本不同 • Pulsar 的云原⽣架构 • Pulsar 的⽣态和社区

20.存储层: Apache BookKeeper • 分布式⽇志/流存储 • 低延时多复本复制: • Quorum Parallel Replication • 持久化: • 所有操作保证刷盘后才进⾏ACK • 强⼀致性 • 读写⾼可⽤ • 存储节点的读写隔离 streamnative.io

21.存储层: Apache BookKeeper • Parallel Quorum Replication • (Ensemble, Write Quorum, Ack Quorum) streamnative.io

22.• Apache Pulsar 简介 • Pulsar 的根本不同 • Pulsar 的云原⽣架构 • 便捷运维 + ⽆感知容错 • IO的并发和隔离

23.Broker 容错 ⽆感知容错 零数据catchup streamnative.io

24.Bookie容错 应⽤⽆感知 并发可控 数据恢复 streamnative.io

25.瞬时存储扩容 应⽤⽆感知 数据均匀分布 ⽆re-balance streamnative.io

26.分区 + 分⽚ https://jack-vanlightly.com/sketches/2018/10/2/kafka-vs-pulsar-rebalancing-sketch streamnative.io

27.• Apache Pulsar 简介 • Pulsar 的根本不同 • Pulsar 的云原⽣架构 • 便捷运维 + ⽆感知容错 • IO的并发和隔离

28.BookKeeper 存储节点 — 读写分离 streamnative.io

29.IO的并发和隔离 — Write Write streamnative.io

Apache DolphinScheduler(原EasyScheduler)是一个分布式工作流任务调度系统,主要解决错综复杂的依赖关系,而不能直观监控任务健康状态等问题。同类作品有oozie、Azkaban等,欢迎对比,哈哈