Pulsar Message 订阅类型

3,Pulsar Message

1,概论

Pulsar 是基于 <u>发布-订阅</u> 式的消息中间件。

  • Producer(生产者)Message(消息) <u>发布</u> 到 Topic(主题)
  • Consumer(消费者) <u>订阅</u> Topic(主题) <u>消费</u> Message(消息)

Message(消息)Producer(生产者) <u>生产</u> 并 <u>发布(Publish)</u> 到 Topic(主题)

2,Message 构成

MessagePulsar 最基本的单元,就我而言,他是一个对数据的封装

Message 由一下部分构成:

  • Value :存放数据的地方,默认是 Byte[] 字节数组,可以通过 Schema 修改
  • Key :数据的标签
  • Properties :键/值对的自定义数据
  • Producer name :生产者的 name 值
  • Sequence ID :消息 在 Topic 的 有序序列 的 序列号
  • Publish time : 消息 发布时间
  • Event time :事件时间戳
  • TypedMessageBuilder : 消息 构造器,可以添加一些属性来构造 消息
  • 等...

3,主题订阅类型

Pulsar 的消息订阅,一共有四种:

  • Exclusive
  • Failover
  • Shared
  • Key_Shared

3-1, Exclusive

  • 只允许有一个 Consumer(消费者) 加入 Subscription ,有其他 Consumer 试图订阅都会报错
exclusive.png
  • 如图所示:

3-2,Failover

  • 允许多个 Consumer 加入同一个 Subscription ,如果 Consumer 连接异常,就由其他 Consumer 来接受消息
failover.png
  • 如图所示

3-3,Shared

  • 允许多个 Consumer 加入同一个 Subscription,消息会依次发送到不同的 Consumer
  • 同一个消息只会被一个 Consumer 消费,
  • 当一个 Consumer 连接异常,发送到该 Consumer 且 <u>未发送确认消息</u> 的消息,会被重新发送给其他 Consumer
shared.png
  • 如图所示

3-4,Key_Shared

  • 允许多个 Consumer 加入同一个 Subscription
  • 拥有相同 Key 的消息会发送给同一个 Consumer
key-shared.png
  • 如图所示
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容