一、使用MQ的时机
- 不使用:强依赖结果
- 使用:
场景一:数据驱动的任务依赖
场景二:上游不关心执行结果,比如发帖子后要增加积分,或者统计之类的操作
场景三:上游关心执行结果,但执行时间很长
二、MQ消息必达怎么做到?
- 消息落地
- 超时,重传,确认
三、幂等
生产者:MQ-client生成inner-msg-id,保证上半场幂等。
- 上半场:inner-msg-id,这个ID全局唯一,业务无关,由MQ保证。
消费者:业务发送方带入biz-id,业务接收方去重保证幂等。
2. 下半场:unique-biz-id,消息接收方保证,这个ID对单业务唯一,业务相关,对MQ透明。
四、削锋填谷
推方式修改为拉方式,消费方按照自己的处理能力来平缓的消费MQ的消息
五、消息延时
核心是一个环形队列
Refer:
- https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959966&idx=1&sn=068a2866dcc49335d613d75c4a5d1b17&chksm=bd2d07428a5a8e54162ad8ea8e1e9302dfaeb664cecc453bd16a5f299820755bd2e1e0e17b60&scene=21#wechat_redirect
- https://blog.csdn.net/bohu83/article/details/79283001