前文回顾:
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无法消费消息。
未完待续..