消息队列(MQ)的作用
消息队列(MQ)的作用
消息队列的作用主要有以下三点:
- 异步处理
- 应用解耦
- 流量削峰
情景描述
以用户注册为例,系统在用户注册后会调用邮件服务功能发送注册信息邮件给客户,下面是各服务的调用时间
服务类型 | 服务耗时 |
---|---|
新增用户 | 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 |
消息队列(MQ)的作用相关推荐
- 后端技术:消息队列MQ/JMS/Kafka相关知识介绍
?今天给大家分享消息队列MQ/JMS/Kafka相关知识介绍 1.消息队列介绍 首先举个收快递的栗子,传统的收快递,快递小哥把我们的快递送到我们的手里.他需要什么条件嗯? 快递小哥有时间送, 我们有时 ...
- 消息队列MQ夺命连环11问:kafka、rabbitmq、rocketmq、activemq
<消息队列MQ如何保证消息的幂等性> <RabbitMQ架构> <ZeroMQ简介:一种高性能的异步消息传递库> <Rocketmq原理&最佳实践&g ...
- 阿里云消息队列MQ学习—阿里云大学视频课
在刷ACE题的过程中,感觉对于消息队列部分的理解不是很深刻,这里来学习一下. 例行还是先走一遍阿里云大学的一些视频课程扫扫盲,选择如下课程: 阿里消息队列MQ简介:阿里巴巴中间件技术部自主研发的专业消 ...
- 消息队列MQ 之 Kafka
目录 前言 一.消息队列 MQ 为什么需要消息队列(MQ) 使用消息队列的好处 消息队列的两种模式 二.Kafka 概述 Kafka 简介 Kafka 的特性 三 实验 前言 一.消息队列 MQ MQ ...
- java队列_RPC远程调用和消息队列MQ的区别
RPC和MQ同样都是用于分布式系统的两个很重要的技术,都有服务提供者.消费者的概念,可在一定程度上对系统进行解耦.但两者之间还是有区别的,本篇简单介绍~ 一.RPC RPC(Remote Proced ...
- 消息队列的使用场景_消息队列MQ的特点、选型及应用场景
一.什么是消息队列 消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列. 消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可 ...
- 详解RPC远程调用和消息队列MQ的区别
谈到分布式架构,就不得不谈到分布式架构的基石RPC. 什么是RPC RPC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC服 ...
- 消息中间件系列(四):消息队列MQ的特点、选型、及应用场景详解
前面集中谈了分布式缓存Redis系列: 高并发架构系列:分布式锁的由来.特点.及Redis分布式锁的实现详解 高并发架构系列:Redis并发竞争key的解决方案详解 高并发架构系列:Redis缓存和M ...
- 消息队列MQ与微消息队列MQTT
文章目录 参考文章 什么是消息队列,什么是RPC 为什么要使用MQ消息队列 1. 解耦(可用性) 2. 流量削峰 3. 数据分发 消息队列的缺点 多种主流传统消息队列MQ对比 传统消息队列Rocket ...
- OneNET物联网平台06 消息队列MQ服务开启与配置
消息队列MQ可作为规则引擎对接的扩展增值服务使用,配合物联网套件,可形成具备设备接入.设备管理.消息分发.应用承载能力的高性能服务组合 消息队列MQ具有如下特点: 消息缓存 MQ服务支持消息缓存,可以 ...
最新文章
- 关于Activity class {package/class} does not exist
- select 不要 用*
- 如何写网站的robots.txt和meta name robots的配置
- IOS开发笔记14-NSArray的使用
- 预计2021年电视出货量有所上涨,网络推广外包之下OLED大肆布局
- 前端学习(869):高级事件导读
- java 银行卡号格式化_JS银行卡号格式化 - JavaScript常用效果 - Front-End - NalanXue's Blog...
- ARouter 源码历险记 (二)
- Spring ——《第一章》Spring的基本应用
- 【计算机视觉入门案例】手写数字识别:Keras深度学习库
- wxpython窗口固定大小_调整wxPython窗口的大小
- scala怎么取绝对值
- python求两个数的最大公约数_python中求最大公约数的三种方法
- ews java 新建邮箱_通过EWS JAVA API订阅邮箱更新
- 懂车帝与蛋蛋订车两大平台对比
- layout和Layout_xxx的区别
- 实现阿拉伯数字转中文大写
- Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)
- 爬取全民K歌用户歌曲
- 梁定郊在英十几年,旅行贿赠福利