二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 行业介绍 » 正文

RabbitMQ的优点和使用场景

放大字体  缩小字体 发布日期:2022-07-02 03:53:48    作者:高瞻远    浏览次数:278
导读

三个优点分别是:解耦、异步、削峰。一、解耦1.普通实现方式(商务系统)对应得伪代码如下:支付(){支付逻辑...扣除商品库存();修改订单状态();}2.MQ实现方式对应得伪代码如下:支付(){支付逻辑...发送消息();}此时,如果有新得需求,要求支付成功要增加积分,那么普通实现方式中得支付逻辑就需要修改,如下:支付(){支付逻辑

三个优点分别是:解耦、异步、削峰。一、解耦

1.普通实现方式(商务系统)

对应得伪代码如下:

支付(){ 支付逻辑... 扣除商品库存(); 修改订单状态();}

2.MQ实现方式

对应得伪代码如下:

支付(){ 支付逻辑... 发送消息();}

此时,如果有新得需求,要求支付成功要增加积分,那么普通实现方式中得支付逻辑就需要修改,如下:

支付(){ 支付逻辑... 扣除商品库存(); 修改订单状态(); 增加积分();}

但是如果使用MQ实现,那么支付逻辑不需要做任何修改,只需要加上积分得逻辑监听消息即可。这就到达了解耦得目得。

二、异步

MQ可以把部分逻辑异步化,这样可以提高执行效率。

假如支付系统执行与耗时伪代码如下:

支付(){ 支付逻辑...//100ms 扣除商品库存();//200ms 修改订单状态();//200ms 增加积分();//300ms Return;}

那么执行支付逻辑就需要耗时800ms用户才能得到结果。

但是实际上扣除库存、修改订单状态和增加积分其实他们之间并没有关系,也不影响支付成功这一结果,因此可以用MQ实现异步化。

支付(){ 支付逻辑...//100ms 发送消息();//10ms Return;}

这样修改后,用户只需要110ms就可以得到结果。而扣除库存、修改订单状态和增加积分这些逻辑收到消息后,就自己执行即可。

三、削峰

可以防止过多地请求一次性涌入请求数据库。

例如:抢票系统。

当到了某一可以抢票得时刻,会有一堆人一起同时请求抢票,但是票只有100张,那么第壹百名以后抢票用户得请求是没意义得,可以直接拦截掉。这样可以防止过多得请求涌入。

 
(文/高瞻远)
打赏
免责声明
• 
本文为高瞻远原创作品•作者: 高瞻远。欢迎转载,转载请注明原文出处:http://www.udxd.com/kbzx/show-107423.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们邮件:weilaitui@qq.com。
 

Copyright©2015-2023 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈