RabbitMq 有啥用

目录

一、MQ有啥用嘞

1、同步

2、异步

 二、MQ的使用场景有哪些嘞。

1、注册操作成功信息的异步发送

2、典型应用-电商系统中的秒杀操作


一、MQ有啥用嘞

如下两个图可以看到同步和异步的区别。

1、同步

RabbitMq 有啥用_第1张图片 

2、异步

RabbitMq 有啥用_第2张图片

 二、MQ的使用场景有哪些嘞。

1、注册操作成功信息的异步发送

  • 场景:
    • 注册操作后要给用户发送注册成功的邮件和短信
  • 分析:
    • 这个过程中用户注册最核心的操作是将用户信息存入数据库中,而发送邮件和短信的操作对于用户而言是允许有稍许延迟的,如果在一个方法中完成这些功能,则用户在页面中要等到这些操作都完成后才能得到注册成功的信息,发短信和邮件可能会耗费比较长的时间,这样用户在页面中得到结果的时间就会变长。
  • 解决方案:
    • 用户完成数据库写入操作后,直接返回注册成功的信息到前端页面。
    • 在返回之间分别创建两条消息,两个不同的消费者方法分别完成短信和邮件的发送。
    • 这样的做法相当于把原来的同步做法变成了异步做法。 
RabbitMq 有啥用_第3张图片 原始流程

 

RabbitMq 有啥用_第4张图片 采用mq优化后的流程

 

2、典型应用-电商系统中的秒杀操作

  • 秒杀系统或秒杀操作一定是一个基于高并发环境下去完成的
  • 用户的核心操作主要是点击“秒杀”按钮后来完成服务器端的一系列操作
    • 商品库存量要减1
      • 【高并发环境下对于库存数量的操作如果通过MySQL完成,效率会很低,因此考虑使用Redis】
      • 【这里要考虑超卖现象,这里会用到“锁”,单机环境使用线程锁,如果是分布式部署,则使用分布式锁】
    • 秒杀成功后要自动生成订单信息
  • 【在高并发环境下,如果有大量订单要生成,服务器压力过大时处理订单信息速度会过慢,可以先告诉用户秒杀成功,订单可以慢慢生成】

 

你可能感兴趣的:(mq,rabbitmq)