前文回顧:
RocketMQ知識盤點【壹】_Producer和NameServer
這篇文章簡單說說rocketMQ的幾個實踐,可能會不斷更新。
1.延時消息使用場景
比如當需要監控訂單超時。那麼發送2條定時消息,一個是訂單開始定時消息A,一個是訂單正常結束定時消息B,兩條消息裏面包含定時的時間。業務系統接到訂單後先按正常延時時間發送延時消息A,然後開始處理,處理完畢則發出一個訂單結束定時消息B。如果系統先接到消息B後接到消息A,則說明訂單未超時;反之則是訂單超時。注意兩條消息要在同一個topic同一個messageQueue。
2.順序消息場景
如果嚴格使用RocketMQ的順序消息,那麼會犧牲很大一塊性能。因此可以這樣考慮,在消息體裏方式全局時鐘,這樣當接到消息時,先判斷消息體裏的時鐘和當前數據保存的時鐘大小,如果大於當前則進行業務處理,否則就是過期消息可不處理。不過需要注意此場景僅針對業務數據對中間狀態不敏感場景。
3.concumer group問題
注意一點,同一個consumer group id下的所有consumer,消費的topic必須一致。否則將會一部分consumer無法消費消息。
未完待續..