目录

一、MQ有啥用嘞

1、同步

2、异步

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

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

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


一、MQ有啥用嘞

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

1、同步

2、异步

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

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

  • 场景:

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

原始流程

采用mq优化后的流程

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

  • 秒杀系统或秒杀操作一定是一个基于高并发环境下去完成的
  • 用户的核心操作主要是点击“秒杀”按钮后来完成服务器端的一系列操作
    • 商品库存量要减1

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

RabbitMq 有啥用相关推荐

  1. RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)

    1. simple 模式 simple 模式是最简单最常用的模式 2. work 模式 work 模式有多个消费者 消息产生者将消息放入队列.生产者系统不需知道哪一个任务执行系统在空闲,直接将任务扔到 ...

  2. Go 学习笔记(57)— Go 第三方库之 amqp (RabbitMQ 生产者、消费者整个流程)

    1. 安装 rabbitmq 的 golang 包 golang 可使用库 github.com/streadway/amqp 操作 rabbitmq .使用下面命令安装 RabbitMQ . go ...

  3. RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置

    1. 服务器管理 我们使用 "节点" 来指代 RabbitMQ 实例,当我们谈到 RabbitMQ 节点时指的是 RabbitMQ 应用程序和其所在的 Erlang 节点. 1.1 ...

  4. RabbitMQ 入门系列(3)— 生产者消费者 Python 代码实现

    生产者消费者代码示例 上一章节中对消息通信概念做了详细的说明,本章节我们对 RabbitMQ 生产者和消费者代码分别做一示例说明. 1. 生产者代码 #!/usr/bin/env python # c ...

  5. RabbitMQ 入门系列(2)— 生产者、消费者、信道、代理、队列、交换器、路由键、绑定、交换器

    本系列是「RabbitMQ实战:高效部署分布式消息队列」和 「RabbitMQ实战指南」书籍的读书笔记. RabbitMQ 中重要概念 1. 生产者 生产者(producer)创建消息,然后发送到代理 ...

  6. RabbitMQ 入门系列(1)— Ubuntu 安装 RabbitMQ 及配置

    1. RabbitMQ 简介 消息 (Message) 是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串.JSON等,也可以很复杂,比如内嵌对象. 消息队列中间件(Message Que ...

  7. RabbitMQ超详细安装教程(Linux)

    目录 1.简介 2.下载安装启动RabbitMQ 2.1.下载RabbitMQ 2.2.下载Erlang 2.3.安装Erlang 2.4.安装RabbitMQ 2.5.启动RabbitMQ服务 3. ...

  8. 第五节 RabbitMQ在C#端的应用-消息收发

    原文:第五节 RabbitMQ在C#端的应用-消息收发 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/details/873 ...

  9. RabbitMQ学习笔记一:本地Windows环境安装RabbitMQ Server

    一:安装RabbitMQ需要先安装Erlang语言开发包,百度网盘地址:http://pan.baidu.com/s/1jH8S2u6.直接下载地址:http://erlang.org/downloa ...

  10. RabbitMQ使用及与spring boot整合

    1.MQ 消息队列(Message Queue,简称MQ)--应用程序和应用程序之间的通信方法 应用:不同进程Process/线程Thread之间通信 比较流行的中间件: ActiveMQ Rabbi ...

最新文章

  1. 你不懂的JS学习笔记(作用域和闭包)
  2. php td内容换行,table单元格内容过多换行显示
  3. LOJ 2546 「JSOI2018」潜入行动——树形DP
  4. 音视频技术开发周刊 | 191
  5. 哪位大兄弟有用 cMake 开发Android ndk的
  6. 使用YAML创建一个 Kubernetes Depolyment
  7. http缓存与cdn相关技术
  8. 磁盘属性显示为RAW的SD卡CF卡U盘和硬盘怎么办?
  9. 管理故事:无知的小沙弥
  10. 文件格式大全------转自http://h.shanse8.com/simple/Index.php?t33837.html
  11. 【自然语言处理】【多模态】OFA:通过简单的sequence-to-sequence学习框架统一架构、任务和模态
  12. Vue3.0 中的数据侦测
  13. 人工智能(AI)是如何处理数据的?
  14. 计算机取证(Windows)FTK+X-Way取证复制
  15. 【python】脚本编写
  16. 计算机网络毕业论文搭建服务,网络搭建毕业论文
  17. Ubuntu 中运行Dropbox
  18. ☆ C/C++ 十进制转二进制
  19. 【膜摸摸】网红步进电机驱动A4988和DRV8825的对比和区别及选用实践 for 四轴CNC雕刻/3D打印
  20. java 中 u表示啥意思_“U”到底是什么意思呢?

热门文章

  1. vue中src路径的写法
  2. Nature, Cell都在用的Relia Tech 抗原亲和纯化LYVE1抗体
  3. 苹果电脑如何用HTML5播放,用HTML5播放IPCamera视频
  4. 大数据全网最佳学习路线总结,不看肯定后悔
  5. [Practical.Vim(2012.9)].Drew.Neil.Tip04学习摘要
  6. matlab 莫比乌斯曲面,『Rhino实例.2』莫比乌斯曲面
  7. 关于WPS Office安全漏洞情况的通报
  8. 基于手持技术的中学化学实验教学研究
  9. 如今银行多open?百信银行百度云AI+Bank金融科技思享会告诉你!
  10. Leaflet创建,tileLayer,marker,面的绘制