- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Apache Pulsar:从消息系统到流原生平台
展开查看详情
1 . COSCon ’ 2019 中国开源年年会 2019年年11⽉月2-11⽉月3⽇日 中国·上海海
2 .Apache Pulsar 从消息系统到流原⽣生平台 翟佳
3 .⾃自我介绍 • 翟佳 • 开源项⽬目爱好者: • Pulsar, BookKeeper, DistributedLog的PMC成员 • EMC -> StreamNative • 华中科⼤大 -> 中科院计算所 • StreamNative: Cloud-Native Event Streaming with 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, 170+ contributors, 1000+ forks, 4300+ 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 • Ensemble • Write Quorum • Ack Quorum
19 .6. 分层分⽚片 带来的好处
20 .Broker 容错 ⽆无感知容错 零数据catchup
21 .Bookie 容错 应⽤用⽆无感知 并发可控 数据恢复
22 . 存储扩容 应⽤用⽆无感知 数据均匀分布 ⽆无re-balance
23 .Rebalance https://jack-vanlightly.com/sketches/2018/10/2/kafka-vs-pulsar-rebalancing-sketch
24 .3 Apache Pulsar 与流原⽣生
25 .1. Partition分⽚片: Segmented Stream P0 Segment 1 Segment 2 Segment 3 Producers P1 Segment 1 Segment 2 Segment 3 Segment 4 P2 Segment 1 Segment 2 Segment 3 Consumers P3 Segment 1 Segment 2 Segment 3 Time
26 .1. Partition分⽚片: Infinite Segmented Stream Segment Readers Producers Stream Segment 1 Segment 2 Segment 3 Segment 4 Segment 5 Segment 6 Consumers Time
27 .1. 统⼀一的数据存储层
28 .2. Schema Registry • 数据是有结构的,结构也是在变化 • ⽣生产者和消费者关于数据结构的⼀一个“合同” • 兼容性:向前、向后、全兼容、不不兼容 • 数据合法性的强制检查
29 .2. Schema Type-Safe客户端 • 客户端与Schema Registry进⾏行行整合 • 端到端Type Safety — Broker进⾏行行Schema的验证保证数据合法性