@
目錄
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
- 如圖所示