- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
翟佳 - ApachePulsar 特性及其系统架构
展开查看详情
1 .特性 & 架构 翟佳
2 .⾃自我介绍 • 开源项⽬目爱好者: • Pulsar, BookKeeper的Committer 和 PMC成员 • EMC -> StreamNative • StreamNative Core Engineer • 华中科⼤大 -> 中科院计算所
3 .• Pulsar 简介 • Pulsar的根本不不同 • Pulsar的分层分⽚片架构 • Pulsar的⽣生态和社区
4 .Apache Pulsar是什什么 2003 2010 2012 2006 2011
5 . Apache Pulsar是什什么 Flexible Pub/Sub messaging backed by durable log/stream storage
6 .为什什么要“造轮⼦子” • 没有系统能够解决遇到的问题和规模 • 多租户 - 百万Topics - 低延时 - 持久化 - 跨地域复制 • 已有的系统存在问题 • 分区模型紧耦合存储和计算,不不是云原⽣生(Cloud Native)的设计 • 存储模型过于简单,强依赖于⽂文件系统 • 想开持久化保证数据不不丢,或者,增加Topics的数量量,性能下降太厉害 • IO不不隔离:消费者在清除Backlog的时候会影响其他⽣生产者和消费者 • 运维太痛苦 - 替换机器器、服务扩容都需要很漫⻓长的重新均衡数据的过程
7 .Apache Pulsar 特性 Durability Ordering Delivery Guarantees Data replicated and Guaranteed ordering At least once, at most synced to disk once and effectively once High throughput Low Latency Unified messaging Can reach 1.8 M Low publish latency of model messages/s in a 5ms at 99pct Support both single partition Streaming and Queuing Multi-tenancy Geo-replication Highly scalable & A single cluster can Out of box support for available support many tenants geographically Can support millions of and use cases distributed topics applications HA
8 .• Pulsar 简介 • Pulsar的根本不不同 • Pulsar的分层分⽚片架构 • Pulsar的⽣生态和社区
9 .• Pulsar 简介 • Pulsar的根本不不同 • 统⼀一消费模型 • 企业级特性 • 分层分⽚片架构
10 .Pulsar统⼀一模型 队列列 + 流
11 .Pulsar统⼀一模型 — 订阅 Broker Subscription1 Producer Topic … Write Ack Subscription 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
12 .Pulsar统⼀一模型 — Key-Shared
13 .• Pulsar 简介 • Pulsar的根本不不同 • 统⼀一消费模型 • 企业级特性 • 分层分⽚片架构
14 .企业级特性
15 .Pulsar的Geo-replication Beijing Shanghai Producer Producer (P1) Topic (T1) Topic (T1) (P2) Consumer SubscripEon (S1) SubscripEon (S1) Consumer (C1) (C2) Broker原⽣生 Producer Topic (T1) Pub/Sub⼀一体 (P3) 管理理简单 Guangzhou 配置灵活
16 .• Pulsar 简介 • Pulsar的根本不不同 • 统⼀一消费模型 • 企业级特性 • 分层分⽚片架构
17 .存储和计算分离 分层架构: Brokers & Bookies • 节点对等 • 独⽴立扩展 • 灵活容错 • 快速扩容
18 .分层 + 分⽚片
19 .• Pulsar 简介 • Pulsar的根本不不同 • Pulsar的分层分⽚片架构 • Pulsar的⽣生态和社区
20 .存储层概念:Entry, Ledger & Log Log / Stream / Topic
21 . 存储层:Apache BookKeeper • Parallel Quorum Replication • Ensemble • Write Quorum • Ack Quorum
22 .分层 + 分⽚片
23 .• Pulsar 简介 • Pulsar的根本不不同 • Pulsar的分层分⽚片架构 • 便便捷运维 + ⽆无感知容错 • IO的并发和隔离
24 .Broker容错 ⽆无感知容错 零数据catchup
25 .Bookie容错 应⽤用⽆无感知 并发可控 数据恢复
26 . 存储扩容 应⽤用⽆无感知 数据均匀分布 ⽆无re-balance
27 .分区 vs 分⽚片 https://jack-vanlightly.com/sketches/2018/10/2/kafka-vs-pulsar-rebalancing-sketch
28 .• Pulsar 简介 • Pulsar的根本不不同 • Pulsar的分层分⽚片架构 • 便便捷运维 + ⽆无感知容错 • IO的并发和隔离
29 .IO的并发和隔离 — Write Kafka Pulsar Broker Broker Broker Broker Broker Broker L1 Cache Partition Partition Partition (Leader) (Follower) (Follower) L2 Cache Write