- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Apache Pulsar - Intro
展开查看详情
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 . 分区 vs 分⽚片 物理理分区 逻辑分区 Segment 1 Segment 2 Segment 3 Segment n Broker Broker Broker Broker Broker Broker 分区 存储和计算 紧耦合 分区 分布 (主副本) (拷⻉贝) (从拷⻉贝) 分离 Segment 1 Segment 2 Segment 3 Segment 1 Segment 2 Segment 3 Segment 1 Segment 2 . . . . . . . . Segment n Segment n Segment n Segment n 分区架构 ! 物理理分区 分⽚片架构 ! 存储和计算紧耦合 ! 容错恢复需要拷⻉贝物理理分区 ! 逻辑分区,“物理理”分⽚片 ! 扩容需要迁移物理理分区来达到负载均衡 ! 存储和计算分离 ! 失效处理理相互分离,快速、⽆无痛点 ! 弹性扩容
24 .“我拿EBS作为Kafka/RocketMQ Broker的硬盘, 是不不是也可以达到你要的存储和计算分离?”
25 .“多了了⼀一层,是不不是时延就⾼高了了,性能就不不好了了”
26 .分区 vs 分⽚片 逻辑分区 物理理分区 Broker Broker Broker Broker Broker Broker 分区 分区 分布 (主副本) (拷⻉贝) (从拷⻉贝)
27 .“太多的移动部件了了,运维复杂了了?”
28 .云原⽣生 • 弹性计算和存储资源 • 容器器时代,Kubernetes化势不不可挡 • 云原⽣生架构不不是为物理理机设计的,⽽而是为容器器化设计 • 存储和计算分离是云原⽣生的架构设计 • Pulsar + Kubernetes == 完美
29 .Pulsar其他特性 • 丰富的客户端:Java, C, C++, Python, Go, WebSocket • 丰富的Policy:存储配额,流量量控制,数据保留留策略略,TTL等 • 灵活的租户控制:软件隔离,物理理隔离 • 多机房、跨地域复制:异步复制,同步复制 • 机架感知、地域感知的数据放置策略略