行业介绍
RabbitMQ的优点和使用场景
2022-07-02 03:53  浏览:452
三个优点分别是:解耦、异步、削峰。一、解耦

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

对应得伪代码如下:

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

2.MQ实现方式

对应得伪代码如下:

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

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

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

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

二、异步

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

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

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

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

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

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

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

三、削峰

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

例如:抢票系统。

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