mq(武哥漫谈IT)

MQ作为中间件在系统架构中起到关键作用,主要体现在系统解耦、异步通信和流量削峰。通过引入MQ,生产者与消费者解耦,仅需关注自身核心流程,如订单支付只需处理订单状态更新,其他如用户积分更新、商家通知等可通过MQ异步处理,提高系统吞吐量。此外,MQ还能用于限流保护,实现消息的顺序投递和延迟消费,确保系统稳定性和效率。
摘要由CSDN通过智能技术生成

参考:https://mp.weixin.qq.com/s/KWoOW1TeJoMhGOSM7AlReg

MQ的应用场景非常多,大家能倒背如流的是:系统解耦、异步通信和流量削峰,
除此之外,还有延迟通知、最终一致性保证、顺序消息、流式处理等等。

消息队列的模型。它其实解决的是:生产者和消费者的通信问题。那它对比 RPC 有什么联系和区别呢?
通过对比,能很明显地看出两点差异:
1、引入 MQ 后,由之前的一次 RPC 变成了现在的两次 RPC,而且生产者只跟队列耦合,它根本无需知道消费者的存在。

2、多了一个中间节点「队列」进行消息转储,相当于将同步变成了异步。

在电商业务中最常见的是订单支付场景:在订单支付成功后,还需要做一系列动作,比如更新用户积分、通知商家等等。
引入 MQ 后,订单支付现在只需要关注它最重要的流程:更新订单状态即可。其他不重要的事情全部交给 MQ 来通知。这便是 MQ 解决的最核心的问题:系统解耦

改造前订单系统依赖 3 个外部系统,改造后仅仅依赖 MQ,而且后续业务再扩展(比如:营销系统打算针对支付用户奖励优惠券),也不涉及订单系统的修改,从而保证了核心流程的稳定性,降低了维护成本。

这个改造还带来了另外一个好处:因为 MQ 的引入,更新用户积分、通知商家、更新用户画像这些步骤全部变成了异步执行,能减少订单支付的整体耗时,提升订单系统的吞吐量。这便是 MQ 的另一个典型应用场景:异步通信

除此以外,由于队列能转储消息,对于超出系统承载能力的场景,可以用 MQ 作为 “漏斗” 进行限流保护,即所谓的流量削峰

我们还可以利用队列本身的顺序性,来满足消息必须按顺序投递的场景;利用队列 + 定时任务来实现消息的延时消费 ……

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值