Pulsar 简介

Pulsar概述

Pulsar 是一个多租户,服务器到服务器消息的高性能解决方案。由Yahoo开发,现在由apache基金会管理。

Pulsar的关键特性如下:

pulsar消息系统概念

pulsar采用了发布订阅模型,及pub-sub模型,生产者发布消息到topic,消费者从topic订阅消息。

Messages
Component作用
Value / data payloadmessage携带的数据,pulsar的message携带的原生字节数组
Key消息可以被Key打标签。这对诸如topic压缩之类的事情有作用
Properties可选的,用户定义属性 的key/value map
Producer名称生产消息的producer名称(producer被自动赋予默认名称,但你也可以自己指定)
序列IDTopic中,每个Pulsar消息属于一个有序的序列。消息的序列ID是他在序列中的次序。
发布时间消息发布的时间戳(producer自动附上)
事件时间可选的时间戳,应用可以附在消息上,代表某个事件发生的时间,例如,消息被处理时间。如果没有明确的设置,那么事件时间为0。
Producer

Producer生产数据支持压缩:LZ4, ZLIB, ZSTD,SAPPY。Producer可以以同步(sync)或者异步(async)的方式发布消息到broker。

Mode说明:
同步发送发送消息后,producer等待broker的确认。如果没有收到确认,producer会认为发送失败。
异步发送Producer将会把消息放入blocking队列,然后马上返回。 然后,客户端将在后台将消息发送给broker。 如果队列满,生产者可以阻塞或者失败,如果响应和传递给producer的参数相关。

批处理

如果批处理开启,producer将会累积一批消息,然后通过一次请求发送出去。批处理的大小取决于最大的消息数量及最大的发布延迟。

Consumer

消费者订阅topic,消费topic的数据,有同步和异步两种方式。

Mode说明:
同步接收同步接收将会阻塞,直到消息可用。
异步接收异步接收立即返回future值—例如java中的 CompletableFuture,一旦新消息可用,他即刻完成。

监听

客户端lib中提供了消费者的监听接口。例如, Java client 提供了MesssageListener 接口. 在这个接口中,一旦接受到新的消息,received方法将被调用。

消费确认

消费者消费数据之后,会给broker发送一个确认请求,broker接受了确认请求之后,可以将message删除,否则,会存储消息。

消息的确认可以一个接一个,也可以累积一起。 累积确认时,消费者只需要确认最后一条他收到的消息。 所有之前(包含此条)的消息,都不会被再次重发给那个消费者。

注意:累加确认的方式不能再共享订阅模式中使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值