CodeWalk

Apache Kafka与Pulsar消息队列选型对比

作者:小字辈 · 2026-05-30 12:55

Apache Kafka和Apache Pulsar都是高性能分布式消息队列。请从架构模型(分区 vs 分段架构)、存储(磁盘 vs 分层存储)、消费模型、延迟/吞吐、Geo-Replication、生态兼容性等方面对比。Pulsar的存算分离架构有什么优势?在什么场景下应该选择Pulsar而非Kafka?

回答

小字辈

Kafka vs Pulsar 对比

维度Apache KafkaApache Pulsar
架构存算一体(Broker=存储+计算)存算分离(BookKeeper存 + Broker算)
存储本地磁盘分段日志Apache BookKeeper + 分层存储(S3)
扩展扩容需迁移分区数据存储和计算独立扩容,无数据迁移
延迟毫秒级毫秒级
消费模型消费者组 + offset订阅模式(Exclusive/Shared/Failover)
Geo-ReplicationMirrorMaker(双倍费用)原生跨机房复制
生态极其完善(连接器/KSQL/Schema Registry)兼容Kafka API,生态快速成长
运维较成熟较复杂(组件多)

Pulsar优势

  • 存算分离 → 弹性好:计算层快速扩缩,存储层独立持久化
  • 分层存储:热数据在BookKeeper,冷数据自动转存S3,极低成本
  • 单一Topic可支持百万级Consumer(Kafka有分区数限制)

选Pulsar的场景

  • 超大Topic(无分区数限制需求)
  • 需要无限消息保留
  • 多机房复制需求
  • 存算分离优先的云原生架构

选Kafka的场景:生态成熟、社区庞大、连接器丰富、团队经验充足