@
目录3,Pulsar Message
1,概论
Pulsar 是基于 发布-订阅 式的消息中间件。
- Producer(生产者) 把 Message(消息) 发布 到 Topic(主题) 中
- Consumer(消费者) 订阅 Topic(主题) 消费 Message(消息)
Message(消息) 被 Producer(生产者) 生产 并 发布(Publish) 到 Topic(主题) 中
2,Message 构成
Message 是 Pulsar 最基本的单元,就我而言,他是一个对数据的封装
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 试图订阅都会报错
- 如图所示:
3-2,Failover
- 允许多个 Consumer 加入同一个 Subscription ,如果 Consumer 连接异常,就由其他 Consumer 来接受消息
- 如图所示
3-3,Shared
- 允许多个 Consumer 加入同一个 Subscription,消息会依次发送到不同的 Consumer,
- 同一个消息只会被一个 Consumer 消费,
- 当一个 Consumer 连接异常,发送到该 Consumer 且 未发送确认消息 的消息,会被重新发送给其他 Consumer
- 如图所示
3-4,Key_Shared
- 允许多个 Consumer 加入同一个 Subscription
- 拥有相同 Key 的消息会发送给同一个 Consumer
- 如图所示