【Java面试】用三钟带你轻松搞懂高频面试题,谈谈你对Pulsar的理解?
有位粉丝私信我说,说想让我拍一期Pulsar的视频,那今天满足一下这位粉丝要求,谈一谈我对Pulsar的理解。
1 Pulsar特性总结
Pulsar作为下一代云原生分布式消息流平台,它集消息、存储、轻量化函数式计算为一体。
最初在 Yahoo 内部开发和部署,支持过Yahoo 应用服务平台 140 万个主题,日处理超过 1000 亿条消息。 Pulsar 于 2016 年由 Yahoo 开源并捐赠给 Apache进行孵化,2018 年成为 Apache 顶级项目。
2 Pulsar特性总结
下面,我给大家总结一下Pulsar有以下九大非常重要的特性:
1、 云原生架构
Pulsar采用计算与存储分离的云原生架构,数据从 Broker 搬离,存在共享存储内部。上层是无状态 Broker,复制消息分发和服务;下层是持久化的存储Bookie 集群。Pulsar 存储是分片的,这种构架可以避免扩容时受限制,实现数据的独立扩展和快速恢复。
2、跨区域大集群
所谓大集群就是跨机房、跨地域的集群,使得Pulsar的分布式能力不局限于某个机房。
3、多租户模式
Pulsar是一个多租户系统,租户可以跨集群分布,每个租户都可以有单独的认证和授权机制。租户也是存储配额、消息 TTL 和隔离策略的管理单元。
4、统一的存储模型
如图所示,Pulsar提供了统一的消息存储模型,支持对主流的消息中间件的兼容和接入。
5、统一的消费模型
Pulsar提供统一的消费模型,一共支持四种消费模式,分别是独占模式(Exclusive)、灾备模式(Failover)、共享订阅(Shared)、键共享订阅(Key_Shared)
1)独占模式(Exclusive):同一个Topic只能有一个消费者订阅,如果多个消费者订阅,就会出错。 Exclusive模式为默认订阅模式。
2)灾备模式(Failover):同一个Topic可以有多个消费者订阅,但是只能有一个消费者消费,其他订阅的消费者作为故障转移的消费者,只有当前消费者出了故障才可以进行消费当前的Topic。
3)共享订阅(Shared):同一个Topic可以由多个消费者订阅和消费。消息通过Round Robin轮询机制分发给不同的消费者,并且每个消息仅会被分发给一个消费者。当消费者断开,发送给它的没有被消费 的消息还会被重新分发给其它存活的消费者
4)键共享订阅(Key_Shared):消息和消费者都会绑定一个Key,消息只会发送给绑定同一个Key的消费者。如果有新消费者建立连接或者有消费者断开连接,就需要更新一些消息的Key。
6、Segmented Streams分片流
Pulsar 将无界的数据看作是分片的流,分片分散存储在分层存储(Tiered Storage)、BookKeeper 集群和 Broker节点上,而对外提供一个统一的、无界数据的视图
7、跨地域复制
Pulsar 中的跨地域复制是将 Pulsar 中持久化的消息在多个集群间备份。在 Pulsar 2.4.0 中新增了复制订阅模式(Replicated-Subscriptions),在某个集群失效情况下,这个功能可以在其他集群恢复消费者的消费状态,从而达到热备模式下消息服务的高可用。
8、Pulsar IO连接器
目前 Pulsar IO 支持非常多数据流的连接集成操作: 例如HDFS 、Spark、Flink 、Flume 、ES 、HBase、MySQL、Redis、MongoDB、Kafka、RocketMQ、Rabbit、ActiveMQ、Netty等等等等
9、Funcations轻量级计算框架
Pulsar可以给用户提供一个部署简单、运维简单、API 简单的 FASS(Function as a service)平台。对复杂的大数据处理框架的有力补充。
好了,以上就是我对Pulsar的理解。当然,大部程序员可能还不一定用的上Pulsar,今天的分享就权当给大家做科普了。
我是被编程耽误的文艺Tom,关注我,面试不再难!