Apache Pulsar
Apache Pulsar 是一个开源的分布式事件流和消息传递平台,其设计目标是提供一个高度可扩展、持久性强、多租户、灵活和性能卓越的消息 中间件解决方案。它提供了消息队列(message queue)和发布-订阅(publish-subscribe)两种消息传递模式,并能够处理大规模、高吞吐量的消息流。
Apache Pulsar 集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。因此受到广泛关注,也被称为“下一代云原生分布式消息流平台”。
提示
Pulsar 最初由 Yahoo 开发,并于2016年贡献给 Apache 软件基金会,成为一个顶级项目。
主要特性
Apache Pulsar 有一些关键特性和优势,解决了许多传统消息中间件的局限性,包括:
- 低延时:Pulsar 具有极低的发布延迟和端到端延迟。
- 持久性:Pulsar 通过将消息存储在持久化的存储层中,确保消息在传递过程中不会丢失,即使消费者离线也能保证消息的可靠性。
- 分层式存储:分层式存储可在数据陈旧时,将数据从热存储卸载到冷/长期存储(如 S3、GCS)中。
- 多租户支持:Pulsar 支持多租户,使得多个团队或应用程序可以在同一个 Pulsar 集群中共存,同时实现资源隔离和安全性。
- 横向扩展性:Pulsar 具有出色的横向扩展能力,可以轻松地适应增长的负载,可无缝扩展到超过一百万个 topic。它通过分区(partitioning)和分割(segmentation)等技术,实现高吞吐量和低延迟的消息传递。
- 灵活的消息模型:Pulsar 支持队列和主题两种消息模型,支持独占、共享和故障转移等多种订阅模式,可以满足不同应用场景的需求。
- 统一的存储层:Pulsar 使用 Apache BookKeeper 作为底层存储引擎,提供了可靠的、高性能的持久化消息存储解决方案。
应用场景
由于 Apache Pulsar 的灵活性和可扩展性,Pulsar 可以适用于各种需要高性能、可靠消息传递的应用程序和系统。例如:
- 金融领域
- 实时交易数据处理:Pulsar 的高吞吐量和低延迟使其成为处理实时交易数据的理想选择。
- 风险管理:金融机构可以使用 Pulsar 实时监控市场波动、执行风险分析等。
- 日志和审计:可以使用 Pulsar 进行事务日志记录和审计,确保数据的完整性和可追溯性。
- 物联网(IoT)