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 的消費模型如下圖: