带你迅速理解,下⼀代云原生分布式消息流平台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,关注我,面试不再难!

相关文章
|
2月前
|
监控 Cloud Native 网络协议
|
4月前
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
117 0
|
4月前
|
SQL 负载均衡 监控
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(上)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目
100 0
|
5月前
|
人工智能 Cloud Native 大数据
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
194 0
|
5月前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署slash书签共享平台
云原生之使用Docker部署slash书签共享平台
112 1
|
2月前
|
IDE Cloud Native 开发工具
云原生之在Docker环境下部署Atheos云IDE平台
【2月更文挑战第3天】云原生之在Docker环境下部署Atheos云IDE平台
365 2
|
2月前
|
Prometheus 监控 Kubernetes
青团社:亿级灵活用工平台的云原生架构实践
青团社:亿级灵活用工平台的云原生架构实践
262352 6
|
3月前
|
消息中间件 存储 Cloud Native
打造新一代云原生"消息、事件、流"统一消息引擎的融合处理平台
在技术视角下,云原生架构是由一系列针对云原生技术的设计原则和模式构成,其主要目标是在云应用中去除最大限度的非业务代码部分,从而将这些非功能性特性(比如弹性、韧性、安全性、可观察性、灰度等)交由云基础设施来管理。这不仅消除了非功能性业务中断的问题,而且为业务赋予了轻量化、灵活性以及高度自动化的特质。
255 0
打造新一代云原生"消息、事件、流"统一消息引擎的融合处理平台
|
3月前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署slash书签共享平台
云原生之使用Docker部署slash书签共享平台
84 3

热门文章

最新文章