独特架构打造新一代消息队列Apache Pulsar

概述

Apache Pulsar 是一个开源的分布式消息流平台,设计用于处理高吞吐量、低延迟的消息传递需求。Pulsar 最早由雅虎开发,并于 2016 年开源,2018 年成为 Apache 基金会的顶级项目。Pulsar 的独特架构使其能够提供多租户、持久化存储和批处理等高级功能,同时保持高性能和可扩展性。

消息传递

在 Pulsar 中,消息传递是通过主题(Topic)进行的。生产者将消息发布到主题,消费者从主题订阅消息。主题可以进一步分为分区(Partition),以实现更高的并发和负载均衡。Pulsar 支持多种消息传递模式,包括:

  1. 独占模式(Exclusive):一个主题只有一个消费者。
  2. 共享模式(Shared):多个消费者共享同一个主题,消息被均匀分配。
  3. 故障转移模式(Failover):多个消费者中只有一个处于活动状态,故障时自动切换到下一个消费者。

架构

Pulsar 的架构由三个主要组件组成:Broker、Apache BookKeeper 和 Apache ZooKeeper。各组件的设计和功能如下:

Broker

Broker 是 Pulsar 的核心组件,负责处理客户端(生产者和消费者)的连接、管理主题和分区、以及协调消息的存储和读取。Broker 还负责负载均衡,将主题的分区均匀分布在多个 Broker 上,以优化资源使用和提高系统性能。

Apache BookKeeper

Apache BookKeeper 提供了 Pulsar 的持久化存储层。消息被持久化到 BookKeeper 的 Bookie 中,确保数据的高可用性和持久性。BookKeeper 采用分布式日志结构,将消息存储在多个 Bookie 中,并进行数据复制,以防止单点故障。

Apache ZooKeeper

Apache ZooKeeper 用于管理集群的元数据和协调集群中的各种操作。ZooKeeper 负责存储主题、分区、Broker 信息等元数据,并执行领导者选举和服务发现等功能,确保集群的高可用性和一致性。

工作原理

Pulsar 的存储层基于 Apache BookKeeper,这使得 Pulsar 能够提供强大的持久化和数据保证。BookKeeper 使用分布式日志的方式存储消息,确保数据可以快速写入和读取。每条消息都会被复制到多个 Bookie,确保即使个别节点出现故障,数据仍然安全。BookKeeper 的日志结构也有助于实现高效的顺序写入和读取操作。

Pulsar 的工作原理基于以下几个关键概念:

  1. 生产者和消费者
    • 生产者将消息发布到主题,Broker 接收消息并将其写入到 BookKeeper 中。
    • 消费者从 Broker 读取消息,Broker 从 BookKeeper 获取消息并传递给消费者。
  1. 分区和主题
    • 主题可以分为多个分区,每个分区由不同的 Broker 处理。分区有助于提高并发处理能力和负载均衡。
  1. 数据复制和存储
    • 消息在多个 Bookie 之间复制,以确保数据的高可用性。即使某个 Bookie 发生故障,数据仍然可用。

组件

以下是 Pulsar 的主要组件及其职责:

  • Broker
    • 处理客户端连接和请求。
    • 管理主题和分区。
    • 负责负载均衡和消息缓存。
  • Apache BookKeeper(Bookies)
    • 持久化消息存储。
    • 提供高可用性的数据复制。
    • 进行分布式日志管理。
  • Apache ZooKeeper
    • 管理元数据和配置信息。
    • 执行领导者选举和服务发现。
    • 协调集群中的操作和故障转移。

如果你喜欢此文章,不要忘记关注+点赞哦!你的支持是我创作的动力。如果你有任何意见或建议,欢迎在下方留言,非常期待与你的交流和讨论。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栈江湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值