RocketMQ的兩種消費模式和重置消費位點

2021-10-07 03:14:14 字數 1236 閱讀 3487

消費模式

第一種:消費者為同乙個組下的,訂閱的是同乙個topic和tag的情況

這樣的就是消費者組成了乙個集群,有多個例項,之後就是topic中的訊息只會被這些例項中的其中乙個消費;

第二種:多個不同組的消費者訂閱同乙個topic和tag的情況

這樣的就是所謂的廣播模式,每個消費者都會接收到topic中的訊息

rocketmq中的訊息被消費了並不會被刪除(究竟儲存多久不清楚,一般都需要持久化),訊息被消費只是訂閱了這個topic的消費者的指標的移動。

上邊寫的兩種情況的理解 第一種是所有的消費者因為是同乙個組的 共用的同乙個指標,所以只會被消費一次;

而第二種的是不同組的消費者生成了各自的指標,也就是各管個的,每個組對應自己的乙個指標,所以會出現所謂的廣播模式。

重置消費位點

用過rocketmq的管理控制平台的同學應該都會看到重置消費位點這個功能,由於消費訊息也只是對應的消費者的指標的偏移,訊息也並沒有消失,所以這個重置消費位點也就是指標的來回移動偏移而已。

如下就是消費位點的介面

也很好理解,首先選擇消費組,就是你訂閱了這個topic的組,下邊的時間點就是你要講指標移動到什麼時候,這個好像不能精確到其中的一條訊息,只能通過時間來定位。然後就是重置後你選的消費組就開始從你選擇的時間點開始消費訊息,不過呢這個好像有點小bug還是怎麼的 我測試的時候它的時間點好像並沒有多麼精確 大家可以自行測試。

還有一點 最重要的一點,這個重置消費位點你點過重置後它不會立馬重置,你的消費者也不會立馬接收到訊息,點過重置後,好像會導致訊息短暫的失效(這個時間好像是0-3分鐘的樣子,所以得等一下)

再說一下@rocketmqmessagelistener這個監聽訊息的註解,它的的配置是

@rocketmqmessagelistener(nameserver="你的rocketmq的nameserver",

topic="你要訂閱的topic名字",

consumergroup="你的消費者的組名字",

consumermode=consumemode.orderly(這個是順序消費,預設是consumemode.concurrent非同步多執行緒消費),

selectorexpression="你的tag名字")

細談RocketMQ的消費模式

目錄 集群消費 廣播消費 使用集群消費模擬廣播消費 首先明確一點,rocketmq 是基於發布訂閱模型的訊息中介軟體。所謂的發布訂閱就是說,consumer 訂閱了 broker 上的某個 topic,當 producer 發布訊息到 broker 上的該 topic 時,consumer 就能收到...

兩種消費觀念

兩種消費觀念 2006年10月 大學同班同學在北京的很多,大約十幾個人。十一期間大學同學聚會,許多人都是久未謀面。北京真的是太大了,以前租房的時候,大家都住在城裡,來往頻繁些。漸漸地,大家都買房成家,於是大都住在郊區,更甚者,五環之外佔大多數。我住京西,你住京東,他住京北.於是見一次面不亞於城際旅行...

微服務的兩種消費方式

在服務註冊中心註冊的各個服務不可以直接呼叫,而是通過服務中心來呼叫。服務中心呼叫有兩種方法 1 ribbon resttemplate 2 feign 首先看看ribbon resttemplate ribbon是乙個負載均衡的客戶端,新建乙個專案,並且在pom檔案中加入 org.springfra...