为什么使⽤mq?具体的使⽤场景是什么?
2022-05-28 本文已影响0人
嘘寒问暖
mq的作⽤很简单,削峰填⾕。以电商交易下单的场景来说,正向交易的过程可能涉及到创建订单、扣减库存、扣减活动预算、扣减积分等等。每个接⼝的耗时如果是100ms,那么理论上整个下单的链路就需要耗费400ms,这个时间显然是太⻓了。

如果这些操作全部同步处理的话,⾸先调⽤链路太⻓影响接⼝性能,其次分布式事务的问题很难处理,时候像扣减预算和积分这种对实时⼀致性要求没有那么⾼的请求,完全就可以通过mq异步的⽅式去处理了。同时,考虑到异步带来的不⼀致的问题,我们可以通过job去重试保证接⼝调⽤成功,⽽且⼀般公司都会有核对的平台,⽐如下单成功但是未扣减积分的这种问题可以通过核对作为兜底的处理⽅案。

使⽤mq之后我们的链路变简单了,同时异步发送消息我们的整个系统的抗压能⼒也上升了。