🚀 千亿级消息引擎 Apache Pulsar 深度剖析:架构原理、设计哲学与实战实践
Pulsar 不止是消息队列,更是下一代云原生流平台。本文将深入剖析其底层架构、核心特性、关键差异、源码细节、调优技巧与企业级实践路径,力求做到“知其然,知其所以然”。
🔍 一、架构哲学:分层解耦 + IO 隔离
🔧 1.1 三层架构模型(Broker + BookKeeper + ZooKeeper)
Pulsar 基于分布式系统经典设计范式:计算与存储解耦,具备天然的水平扩展能力和 弹性伸缩机制。
Client(Producer / Consumer)
│
┌───▼──────┐
│ Broker │(无状态,负责路由)
└───┬──────┘
▼
Apache BookKeeper(有状态,存储消息)
│
Zookeeper(协调元数据、服务注册)
🔖 设计模式:
- Broker 层采用 无状态服务 模式(Stateless Service Pattern)
- 存储层基于 日志分段模型 + 多副本机制
- 使用 CAP 中 AP 优先,辅以可选强一致性写入
📦 1.2 Segment 分段存储模型
- Ledger:BookKeeper 的基本存储单元,表示一组连续写入的消息日志。
- Segment(段):Pulsar 中每个 Topic 被拆分为多个 Segment,仅最后一段允许写入。
class ManagedLedger {
List<LedgerHandle> ledgers; <