Apache Pulsar 从消息系统到流原生平台-Jia

展开查看详情

1.ApachePulsar 从消息系统到流原⽣平台 翟佳

2. ⾃我介绍 • 翟佳 • 开源项⽬爱好者: • Apache Pulsar, • Apache BookKeeper • EMC -> StreamNative • StreamNative: • Cloud-Native Event Streaming with Apache Pulsar

3.什么是 Apache Pulsar Apache Pulsar 的不同 Apache Pulsar 与流原⽣ 社区案例

4.1 什么是 Apache Pulsar

5.Pulsar 简介 2003 2010 2012 2006 2011

6. 为什么要“造轮⼦” • 没有系统能够解决遇到的问题和规模 • 多租户 - 百万Topics - 低延时 - 持久化 - 跨地域复制 • 已有的系统存在问题 • 分区模型紧耦合存储和计算, • 不是云原⽣(Cloud Native)的设计 • 存储模型过于简单,强依赖于⽂件系统 • 想开持久化保证数据不丢,或者,增加Topics的数量,性能下降太厉害 • IO不隔离:消费者在清除Backlog的时候会影响其他⽣产者和消费者 • 运维太痛苦 - 替换机器、服务扩容都需要很漫⻓的重新均衡数据的过程

7.Pulsar 简介 —— 定义 Flexible Pub-Sub Messaging, backed by durable log Storage

8.Pulsar 历史简介 • 2012: Pulsar idea started at Yahoo! • 5 years on production, 100+ applications, 10+ data centers • 2016/09 Yahoo open sourced Pulsar • 2017/06 Yahoo donated Pulsar to ASF • 2018/09 Pulsar graduated as a Top-Level project • 2018/09 InfoWorld Best Open Source Project • ~30 committers, 200 + contributors, 1000+ forks, 4600+ stars • Yahoo!, Yahoo! Japan, Tencent, Zhaopin, THG, OVH, … http://pulsar.apache.org/en/powered-by/

9.不同 • 灵活的、统⼀的消息模型:队列 + 流 • 企业级特性 • 云原⽣: • 存储(storage)和计算(serving/messaging)分离 • 降维:从分区到分⽚

10.2 Apache Pulsar 的不同

11.1. 灵活的、统⼀的消息模型

12.1. 灵活的、统⼀的消息模型

13.2. 企业级特性 — 多租户

14.2. 企业级特性 — Geo-replication Broker原⽣ Pub/Sub⼀体 管理简单 配置灵活

15.3. 云原⽣架构 • 存储和计算分离 • 独⽴扩展 • 灵活扩容 • 快速容错

16.4. 降维:Partition 分⽚ • 逻辑分区 • 分区分⽚ • Size&Time • 存储均衡

17.5. 存储层: Apache BookKeeper 分布式⽇志/流存储 • 低延时、⾼吞吐、持久化 • 强⼀致 (repeatable read consistency) • ⾼可⽤ • 单节点可以存储很多⽇志 • I/O隔离

18.5. 存储层: Apache BookKeeper Source of Truth of Everything … • HDFS NameNode • Databases: • Twitter Manhattan, • Salesforce NewSQL Database • Messaging: • Twitter EventBus • Apache Pulsar

19. 5. 存储层: Apache BookKeeper • openLedger(ensemble_size, write_quorum_size, ack_quorum_size)

20.5. Apache BookKeeper — ⼀致性 • Raft • BookKeeper

21.5. Apache BookKeeper — ⼀致性 • Raft • BookKeeper

22. 5. Apache BookKeeper — ⼀致性 • LastAddPushed • LastAddConfirmed • Fencing避免脑裂

23.5. Apache BookKeeper — 读写分离

24.6. 分层分⽚优势

25.Broker 容错 ⽆感知容错 零数据catchup

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

27. 存储扩容 应⽤⽆感知 数据均匀分布 ⽆re-balance

28.Rebalance https://jack-vanlightly.com/sketches/2018/10/2/kafka-vs-pulsar-rebalancing-sketch

29.3 Apache Pulsar 与流原⽣

StreamNative 是一家围绕 Apache Pulsar 和 Apache BookKeeper 打造下一代流数据平台的开源基础软件公司。秉承 Event Streaming 是大数据的未来基石、开源是基础软件的未来这两个理念,专注于开源生态和社区的构建,致力于前沿技术。