<返回更多

RabbitMQ的优点和使用场景

2022-06-26    程序资源库
加入收藏

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

一、解耦

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

RabbitMQ的优点和使用场景

 

对应的伪代码如下:

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

2.MQ实现方式

RabbitMQ的优点和使用场景

 

对应的伪代码如下:

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

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

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

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

二、异步

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

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

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

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

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

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

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

三、削峰

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

例如:抢票系统。

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

RabbitMQ的优点和使用场景

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>