带你迅速理解,下⼀代云原生分布式消息流平台Pulsar到底是什么?

简介: 有位粉丝私信我说,说想让我拍一期Pulsar的视频,那今天满足一下这位粉丝要求,谈一谈我对Pulsar的理解。

【Java面试】用三钟带你轻松搞懂高频面试题,谈谈你对Pulsar的理解?


有位粉丝私信我说,说想让我拍一期Pulsar的视频,那今天满足一下这位粉丝要求,谈一谈我对Pulsar的理解。

1 Pulsar特性总结

Pulsar作为下一代云原生分布式消息流平台,它集消息、存储、轻量化函数式计算为一体。

458b3a1803fd3eb718045ed0d89b9047.png

最初在 Yahoo 内部开发和部署,支持过Yahoo 应用服务平台 140 万个主题,日处理超过 1000 亿条消息。  Pulsar 于 2016 年由 Yahoo 开源并捐赠给 Apache进行孵化,2018 年成为 Apache 顶级项目。

2 Pulsar特性总结

下面,我给大家总结一下Pulsar有以下九大非常重要的特性:


1 云原生架构


Pulsar采用计算与存储分离的云原生架构,数据从 Broker 搬离,存在共享存储内部。上层是无状态 Broker,复制消息分发和服务;下层是持久化的存储Bookie 集群。Pulsar 存储是分片的,这种构架可以避免扩容时受限制,实现数据的独立扩展和快速恢复。

a42905d32560d13bb58beb79206f57a4.png

2、跨区域大集群


所谓大集群就是跨机房、跨地域的集群,使得Pulsar的分布式能力不局限于某个机房。

223521315048ed615f8ce6387934da63.png

3、多租户模式


Pulsar是一个多租户系统,租户可以跨集群分布,每个租户都可以有单独的认证和授权机制。租户也是存储配额、消息 TTL 和隔离策略的管理单元。

e65c42b4994e56e2bd510099db74b085.png

4、统一的存储模型

02d6342f82d0449e95d998bcaa568f84.png

如图所示,Pulsar提供了统一的消息存储模型,支持对主流的消息中间件的兼容和接入。

5、统一的消费模型

Pulsar提供统一的消费模型,一共支持四种消费模式,分别是独占模式(Exclusive)、灾备模式(Failover)、共享订阅(Shared)、键共享订阅(Key_Shared)

cd435d8eb9b049d4ae981e8d13fbcd9e.png

1)独占模式(Exclusive):同一个Topic只能有一个消费者订阅,如果多个消费者订阅,就会出错。 Exclusive模式为默认订阅模式。


2)灾备模式(Failover):同一个Topic可以有多个消费者订阅,但是只能有一个消费者消费,其他订阅的消费者作为故障转移的消费者,只有当前消费者出了故障才可以进行消费当前的Topic。


3)共享订阅(Shared):同一个Topic可以由多个消费者订阅和消费。消息通过Round Robin轮询机制分发给不同的消费者,并且每个消息仅会被分发给一个消费者。当消费者断开,发送给它的没有被消费 的消息还会被重新分发给其它存活的消费者


4)键共享订阅(Key_Shared):消息和消费者都会绑定一个Key,消息只会发送给绑定同一个Key的消费者。如果有新消费者建立连接或者有消费者断开连接,就需要更新一些消息的Key。

6、Segmented Streams分片流

image.png

Pulsar 将无界的数据看作是分片的流,分片分散存储在分层存储(Tiered Storage)、BookKeeper 集群和 Broker节点上,而对外提供一个统一的、无界数据的视图

7、跨地域复制

c44a1a11fc81cd62184b1dbc19ddbc77.png

Pulsar 中的跨地域复制是将 Pulsar 中持久化的消息在多个集群间备份。在 Pulsar 2.4.0 中新增了复制订阅模式(Replicated-Subscriptions),在某个集群失效情况下,这个功能可以在其他集群恢复消费者的消费状态,从而达到热备模式下消息服务的高可用。

8、Pulsar IO连接器

00d176f842784008a483680e9ba62641.png

目前 Pulsar IO 支持非常多数据流的连接集成操作: 例如HDFS 、Spark、Flink 、Flume 、ES 、HBase、MySQL、Redis、MongoDB、Kafka、RocketMQ、Rabbit、ActiveMQ、Netty等等等等

9、Funcations轻量级计算框架

10dc38647f2e40f2b1e14ac2893bf029.png

Pulsar可以给用户提供一个部署简单、运维简单、API 简单的 FASS(Function as a service)平台。对复杂的大数据处理框架的有力补充。


好了,以上就是我对Pulsar的理解。当然,大部程序员可能还不一定用的上Pulsar,今天的分享就权当给大家做科普了。


我是被编程耽误的文艺Tom,关注我,面试不再难!

相关文章
|
1月前
|
Kubernetes Cloud Native 容器
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
50 1
|
3月前
|
监控 Cloud Native 网络协议
|
5月前
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
120 0
|
5天前
|
存储 Cloud Native 文件存储
云原生之使用Docker部署Nas-Cab个人NAS平台
【5月更文挑战第2天】云原生之使用Docker部署Nas-Cab个人NAS平台
91 1
|
1月前
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
177 0
|
5月前
|
SQL 负载均衡 监控
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(上)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目
108 0
|
2月前
|
消息中间件 存储 Cloud Native
【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」打造新一代云原生"消息、事件、流"统一消息引擎的融合处理平台
【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」打造新一代云原生"消息、事件、流"统一消息引擎的融合处理平台
34 0
|
3月前
|
IDE Cloud Native 开发工具
云原生之在Docker环境下部署Atheos云IDE平台
【2月更文挑战第3天】云原生之在Docker环境下部署Atheos云IDE平台
377 2
|
3月前
|
Prometheus 监控 Kubernetes
青团社:亿级灵活用工平台的云原生架构实践
青团社:亿级灵活用工平台的云原生架构实践
262360 6

热门文章

最新文章