消息队列(MQ)的作用

消息队列的作用主要有以下三点:

  1. 异步处理
  2. 应用解耦
  3. 流量削峰

情景描述
以用户注册为例,系统在用户注册后会调用邮件服务功能发送注册信息邮件给客户,下面是各服务的调用时间

服务类型 服务耗时
新增用户 0.5s
邮件服务 5s
发送用户注册信息至MQ 0.5s
  • 异步处理

在未使用RabbitMQ时候,用户需要等待时间5.5s(新增用户0.5s+调用邮件服务5s)

使用RabbitMQ后,唯一不同是在执行新增用户服务(0.5s)后没有调用邮件服务,而是将用户注册信息发送至MQ(耗时0.5s),故总耗时是1s。

因此,使用RabbitMQ的第一个特点是异步处理程序,达到减少用户等待时间,优化用户体验感。

  • 应用解耦
    再说一下使用消息队列的应用解耦特点:
    还是上面这幅图,假如邮件服务程序所在的服务器宕机,那么没有使用消息队列情况下代码会出现异常报错,无法返回结果给用户。
    使用消息队列后,服务端在完成新增用户和将注册用户信息发送至RabbitMQ后就将注册结果返回给用户,邮件服务等到RabbitMQ消费者消费后再执行,就算邮件服务所在服务器宕机,后面也会有专业的运维人员进行维护邮件服务(消息经持久化,未被消费会一直存在)。同样能给予用户舒适的体验感。

  • RabbitMQ+Redis完成流量削峰

假如有100000个请求

统计请求数量,将其存放至redis,
系统会将前1000个请求存放到RabbitMQ中。创建订单处理服务来消费存放在MQ中信息,处理完毕后再将信息存放至mysql数据库。
假如超过1000请求数,系统会直接将后面的请求返回信息(“商品已售罄”),同时将数据写入mysql数据库作为相关的数据记录。

Memorial Day is 513 days
I miss you
xiaokeai

消息队列(MQ)的作用相关推荐

  1. 后端技术:消息队列MQ/JMS/Kafka相关知识介绍

    ?今天给大家分享消息队列MQ/JMS/Kafka相关知识介绍 1.消息队列介绍 首先举个收快递的栗子,传统的收快递,快递小哥把我们的快递送到我们的手里.他需要什么条件嗯? 快递小哥有时间送, 我们有时 ...

  2. 消息队列MQ夺命连环11问:kafka、rabbitmq、rocketmq、activemq

    <消息队列MQ如何保证消息的幂等性> <RabbitMQ架构> <ZeroMQ简介:一种高性能的异步消息传递库> <Rocketmq原理&最佳实践&g ...

  3. 阿里云消息队列MQ学习—阿里云大学视频课

    在刷ACE题的过程中,感觉对于消息队列部分的理解不是很深刻,这里来学习一下. 例行还是先走一遍阿里云大学的一些视频课程扫扫盲,选择如下课程: 阿里消息队列MQ简介:阿里巴巴中间件技术部自主研发的专业消 ...

  4. 消息队列MQ 之 Kafka

    目录 前言 一.消息队列 MQ 为什么需要消息队列(MQ) 使用消息队列的好处 消息队列的两种模式 二.Kafka 概述 Kafka 简介 Kafka 的特性 三 实验 前言 一.消息队列 MQ MQ ...

  5. java队列_RPC远程调用和消息队列MQ的区别

    RPC和MQ同样都是用于分布式系统的两个很重要的技术,都有服务提供者.消费者的概念,可在一定程度上对系统进行解耦.但两者之间还是有区别的,本篇简单介绍~ 一.RPC RPC(Remote Proced ...

  6. 消息队列的使用场景_消息队列MQ的特点、选型及应用场景

    一.什么是消息队列 消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列. 消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可 ...

  7. 详解RPC远程调用和消息队列MQ的区别

    谈到分布式架构,就不得不谈到分布式架构的基石RPC. 什么是RPC RPC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC服 ...

  8. 消息中间件系列(四):消息队列MQ的特点、选型、及应用场景详解

    前面集中谈了分布式缓存Redis系列: 高并发架构系列:分布式锁的由来.特点.及Redis分布式锁的实现详解 高并发架构系列:Redis并发竞争key的解决方案详解 高并发架构系列:Redis缓存和M ...

  9. 消息队列MQ与微消息队列MQTT

    文章目录 参考文章 什么是消息队列,什么是RPC 为什么要使用MQ消息队列 1. 解耦(可用性) 2. 流量削峰 3. 数据分发 消息队列的缺点 多种主流传统消息队列MQ对比 传统消息队列Rocket ...

  10. OneNET物联网平台06 消息队列MQ服务开启与配置

    消息队列MQ可作为规则引擎对接的扩展增值服务使用,配合物联网套件,可形成具备设备接入.设备管理.消息分发.应用承载能力的高性能服务组合 消息队列MQ具有如下特点: 消息缓存 MQ服务支持消息缓存,可以 ...

最新文章

  1. 关于Activity class {package/class} does not exist
  2. select 不要 用*
  3. 如何写网站的robots.txt和meta name robots的配置
  4. IOS开发笔记14-NSArray的使用
  5. 预计2021年电视出货量有所上涨,网络推广外包之下OLED大肆布局
  6. 前端学习(869):高级事件导读
  7. java 银行卡号格式化_JS银行卡号格式化 - JavaScript常用效果 - Front-End - NalanXue's Blog...
  8. ARouter 源码历险记 (二)
  9. Spring ——《第一章》Spring的基本应用
  10. 【计算机视觉入门案例】手写数字识别:Keras深度学习库
  11. wxpython窗口固定大小_调整wxPython窗口的大小
  12. scala怎么取绝对值
  13. python求两个数的最大公约数_python中求最大公约数的三种方法
  14. ews java 新建邮箱_通过EWS JAVA API订阅邮箱更新
  15. 懂车帝与蛋蛋订车两大平台对比
  16. layout和Layout_xxx的区别
  17. 实现阿拉伯数字转中文大写
  18. Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)
  19. 爬取全民K歌用户歌曲
  20. 梁定郊在英十几年,旅行贿赠福利

热门文章

  1. 小米手表和华为手表gt2哪个好
  2. 哈工大计算机网络Week0-概述
  3. 工业设计体验设计产品设计的缩写
  4. 共享车位|基于SpringBoot+vue+node共享车位平台的设计与实现
  5. 学校的校园广播是如何设置的
  6. 阿里新零售事业部电面
  7. Atitit r2017 r3 doc list on home ntpc.docx
  8. ML之LIME:可解释性之SP-LIME的简介、原理、使用方法、经典案例之详细攻略
  9. Thinkpad E440设置U盘启动的问题
  10. 网易互娱笔试2021批题解