RocketMQ知識盤點【肆】_最佳實踐

前文回顧:

RocketMQ知識盤點【壹】_Producer和NameServer

RocketMQ知識盤點【貳】_Broker和消息存儲

RocketMQ知識盤點【叄】_Consumer

 

這篇文章簡單說說rocketMQ的幾個實踐,可能會不斷更新。

 

1.延時消息使用場景

比如當需要監控訂單超時。那麼發送2條定時消息,一個是訂單開始定時消息A,一個是訂單正常結束定時消息B,兩條消息裏面包含定時的時間。業務系統接到訂單後先按正常延時時間發送延時消息A,然後開始處理,處理完畢則發出一個訂單結束定時消息B。如果系統先接到消息B後接到消息A,則說明訂單未超時;反之則是訂單超時。注意兩條消息要在同一個topic同一個messageQueue。

 

2.順序消息場景

如果嚴格使用RocketMQ的順序消息,那麼會犧牲很大一塊性能。因此可以這樣考慮,在消息體裏方式全局時鐘,這樣當接到消息時,先判斷消息體裏的時鐘和當前數據保存的時鐘大小,如果大於當前則進行業務處理,否則就是過期消息可不處理。不過需要注意此場景僅針對業務數據對中間狀態不敏感場景。

 

3.concumer group問題

注意一點,同一個consumer group id下的所有consumer,消費的topic必須一致。否則將會一部分consumer無法消費消息。

 

未完待續..

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章