消息队列(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. 除了网络搜索(NAS),AutoML对深度学习模型优化还有哪些贡献?
  2. linux中断系统那些事之----中断处理过程【转】
  3. asp.net core MVC 过滤器之ExceptionFilter过滤器(一)
  4. 【物联网】OpenWrt编译和修改基础--预科
  5. python文本替换 数据库_在Python中使用ASCII文件中的注释查找/替换子...
  6. 【转】代码里的命名规则:错误的和正确的对比
  7. Spring Boot修改添加界面二合一
  8. Spark的ShuffleManager
  9. JAVA--异常(1)
  10. 程序员面试金典——4.1二叉树平衡检查
  11. 吃货在东京 -- 记那段吃不饱的日子 之五 保护加班后的胃
  12. 阿里巴巴android开发规范,阿里巴巴开发手册|阿里巴巴Android开发手册 PDF电子版_最火软件站...
  13. 思科模拟器的常用命令
  14. 【转】Google Page Rank 算法(转载) - 北溟居 - CSDN博客
  15. 【Oracle】并行等待之PX Deq Credit: send blkd
  16. 【Romance of the Three Kingdoms】
  17. 你为什么要去做微商?
  18. 奔梦向前-代码实现表白男生女生-2020-06-15
  19. 微信小程序分享生成海报
  20. 小程序第三方微信授权登录的实现

热门文章

  1. hx711基准电压_2块钱的24位AD-HX711做电压表的初步研究
  2. 如何理解FFT中时间窗与RBW的关系
  3. 算法设计--众数和重数问题(分治法)
  4. 微信企业号通讯录套件安装失败
  5. 只用帆软FineBI就能制作客户行为分析驾驶舱!
  6. python大学公众号_推荐几个专业的技术公众号
  7. 国标GB28181协议国标设备是否可以同时接入多个国标GB28181平台进行视频直播、录像检索、回看
  8. android字符串中提取手机号
  9. 当从 Java 进程查看时该主机的主机名称和规范名称不一致。
  10. 电机不动 米兔机器人_米兔机器人滞后开箱+使用感受