中间件 - MQ架构细节

一、使用MQ的时机

  1. 不使用:强依赖结果
  2. 使用:
    场景一:数据驱动的任务依赖
    场景二:上游不关心执行结果,比如发帖子后要增加积分,或者统计之类的操作
    场景三:上游关心执行结果,但执行时间很长
    在这里插入图片描述

二、MQ消息必达怎么做到?

在这里插入图片描述

  1. 消息落地
  2. 超时,重传,确认

三、幂等

生产者:MQ-client生成inner-msg-id,保证上半场幂等。

  1. 上半场:inner-msg-id,这个ID全局唯一,业务无关,由MQ保证。

消费者:业务发送方带入biz-id,业务接收方去重保证幂等。
2. 下半场:unique-biz-id,消息接收方保证,这个ID对单业务唯一,业务相关,对MQ透明。

四、削锋填谷

推方式修改为拉方式,消费方按照自己的处理能力来平缓的消费MQ的消息

五、消息延时

核心是一个环形队列

Refer:

  1. https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959966&idx=1&sn=068a2866dcc49335d613d75c4a5d1b17&chksm=bd2d07428a5a8e54162ad8ea8e1e9302dfaeb664cecc453bd16a5f299820755bd2e1e0e17b60&scene=21#wechat_redirect
  2. https://blog.csdn.net/bohu83/article/details/79283001

猜你喜欢

转载自blog.csdn.net/hudmhacker/article/details/108077673