Pulsar入门与架构设计探究

Pulsar简介

Pulsar是云原生分布式消息流平台(即可作为消息中间件),最初源于Yahoo,支持Yahoo应用服务140万个主题,日处理超过1000亿条消息。Pulsar于2016年开源并捐赠给Apache软件基金会,现为Apache软件基金会顶级项目。

Pulsar的特性如下:

  • 支持多租户,通过多租户可为每个租户单独设置认证机制、存储配额、隔离策略等。
  • 具有高吞吐、低延时、强容错等特性   
  • 原生支持多集群部署,集群间支持无缝的数据复制(Geo-replication)
  • 高扩展性,能够支撑上百万个topic
  • 支持多语言客户端,如Java、Go、Python和C++
  • 支持多种消息订阅模式(exclusive, shared, failover,下文会有介绍)
  • 高可靠的消息持久化存储
  • 支持数据分层式存储,可将冷数据保存到S3、GCS等低成本的存储系统中

 

为什么使用Pulsar

MQ对比:

image.png

Pulsar除了性能好、可靠性高之外,Pulsar有多租户、GEO-replication以及横向扩展能力等方面上的优势。

 

Pulsar基础知识

Topic组成部分

在Pulsar中topic的格式为:{persistent|non-persistent}://tenant/namespace/topic

persistent://public/default/order_status_changed_event

这里会涉及到几个概念

topic名称组成

描述

持久化/非持久化

pulsar支持两种主题类型:持久化和非持久化,默认是持久化。对于持久化的主题,消息会持久化到磁盘中,而非持久化则不会。

租户(tenant)

租户是topic最基本单位,租户可以跨集群分布,每个租户都可以有单独的认证和授权机制,租户也是存储配额、消息TTL(即消息自动确认时间)和隔离策略的管理单元。

命名空间(namespace)

将相关联的topic作为一个组来管理,是管理topic的基本单元。大多数对topic的管理都是以命名空间为粒度,比如GEO-replication是以namespace为单元。

主题(topic)

即主题名

下图以一个直观的视角来看一个topic的组成:(其中Property对应到tenant)

image.png

 

主题订阅模式

pulsar的主题订阅模式包括四种:独占(exclusive)、共享(shared)、灾备(failover)、key共享(key_shared)。

image.png

  • 独占:一个订阅只与一个消费者可以关联,只有这个消费者接收到topic的全部消息,如果这个消费者故障了就会停止消费。该模式适用于全局有序的消息消费。
  • 灾备:一个订阅可以与多个消费者关联,但只有一个消费者会消费到数据,当该消费者故障时,由另一个消费者来继续消费。该模式适用于全局有序的消息消费。
  • 共享:一个订阅可以与多个消费者关联,消息通过轮询机制发送给不同的消费者。该模式
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值