- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
PULSAR-从消息系统到流原生数据平台
展开查看详情
1 .从消息系统到流原⽣生数据平台 Sijie Guo —- twitter: @sijieg wechat: guosijie_
2 .Who am I • Sijie Guo • 开源项⽬目爱好者:Pulsar, BookKeeper, Hive, HBase, … • Streamlio联合创始⼈人 • Yahoo -> Twitter -> Streamlio • 华中科⼤大 -> 中科院计算所
3 .Pulsar于九⽉月从Apache Incubator毕业成为顶级项⽬目
4 .什什么是Apache Pulsar
5 .2003 2010 2012 2006 2011
6 . “Flexible Pub/Sub messaging backed by durable log/stream storage”
7 .为什什么要“造轮⼦子” • 没有系统能够解决遇到的问题和规模 • 多租户 • 百万Topics • 低延时 • 持久化 • 跨地域复制
8 .为什什么要“造轮⼦子” (2) • 已有的系统存在问题 • 分区模型紧耦合存储和计算,不不是云原⽣生(Cloud Native)的设计 • 存储模型过于简单,强依赖于⽂文件系统 • 想开持久化保证数据不不丢,或者,增加Topics的数量量,性能下降太厉害 • IO不不隔离:消费者在清除Backlog的时候会影响其他⽣生产者和消费者 • 运维太痛苦 - 替换机器器、服务扩容都需要很漫⻓长的重新均衡数据的过程
9 .为什什么要“造轮⼦子” (3) • 基础架构从物理理机时代往容器器化转型 • 需要⼀一个新的⾯面向容器器编排设计的原⽣生系统
10 .项⽬目状态 • 2012在Yahoo内部启动,经历了了⽆无数的迭代 • 2016年年九⽉月Yahoo将Pulsar开源 • 2017年年六⽉月Yahoo将Pulsar捐献给了了Apache软件基⾦金金会 • 2018年年九⽉月Pulsar毕业成为顶级项⽬目 • 2353 commits - 22 Yahoo releases - 9 Apache releases • 23 committers from 7 companies, 59 contributors • 30+ companies on production
11 .简介
12 .不不同在哪⾥里里 • 灵活的、统⼀一的消息模型:队列列 + 流 • 云原⽣生:存储(storage)和计算(serving/messaging)分离 • 降维:从物理理分区到逻辑分⽚片
13 .Pulsar概念
14 .Pulsar概念 (2)
15 .队列列 + 流
16 .流:独占式订阅
17 .流:灾备式订阅
18 .队列列:共享式订阅
19 .例例⼦子: Event Center
20 .例例⼦子: Event Center (2)
21 .存储和计算分离 分层架构: Brokers & Bookies • 独⽴立扩展 • 灵活容错 • 快速扩容
22 . 分⽚片存储 • 分区(Partition)是逻辑上的⼀一个概念 • 分区按照时间或者⼤大⼩小被切成分⽚片 (Segment) • 分⽚片被打散存放到集群中的所有节点
23 .读写流程 (1) (1) ⽣生产者发送消息给Broker
24 .读写流程 (2) (2) Broker并发写N个副本
25 .读写流程 (3) (3) Broker等待来⾃自于Bookies的Quorum Acks
26 .读写流程 (4) (4) Broker返回确认给⽣生产者,并投递给消费者
27 .Broker容错
28 .Bookie容错
29 .扩容