Pulsar 源自 Yahoo,于 2016 年开源并捐献给 Apache 基金会,并在 2018 年 9 月升级成为 Apache 顶级项目。
Kafka 最初由 Linkedin 开发,并于 2010 年贡献给了 Apache 基金会,之后成为 Apache 顶级项目。
Kafka 架构
Kafka 架构由 Broker 和 Zookeeper 组成,如下图:
**** 注意:Kafka 2.8 版本可以不依赖 Zookeeper 独立运行了。
Pulsar 架构
Pulsar Broker 会在本地缓存消息,并且支持 TTL。
kafka vs Pulsar
从上面的两个架构图我们看到,Kafka 和 Pulsar 有三点不同:
- Pulsar 采用分层架构,将计算和存储相分离,存储使用 BookKeeper 集群,计算使用 Broker 集群,Broker 需要内置 BookKeeper 客户端。
- Pulsar 的部署和架构更加复杂,但是也更具有伸缩性。
- Pulsar 在最新版本中依然不能脱离 Zookeeper 独立运行。
消费模型
Kafka 的消费模型是采用消费者组的模式,每一个分区只能给消费者组中的一个消费者消费。如下图:
Pulsar 的消费模型如下图: