mq是什么软件 mq是什么

一.消息队列(MQ)概述
1.消息队列中间件是分布式系统的重要组成部分,主要解决应用解耦、异步消息、流量裁剪等问题 , 实现高性能、高可用性、可扩展和最终一致的体系结构 。
2.常用的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetalMQ和RocketMQ 。
第二,消息队列的使用场景
常见场景:异步处理、应用解耦、流量裁剪和消息通信 。
1.异步处理:
【mq是什么软件 mq是什么】描述-用户注册后 , 发送注册邮件和注册短信 。传统做法——a .串行模式,b .并行模式 。
1.1串行模式
将注册消息写入数据库后,发送注册邮件,然后发送注册短信 , 等所有消息发送完毕后再返回给客户端 。
1.2并行模式
注册消息写入数据库后,注册邮件和注册消息同时发送,所有消息发送完毕后,返回给客户端 。
1.3串行模式和并行模式的区别
并行模式可以有效提高处理效率 。
假设三个服务节点(将注册消息写入数据库,发送注册邮件和注册短消息)每个需要50ms,不考虑其他因素 , 串行模式需要150ms,
并行模式只有100ms 。因为单位时间内CPU处理的请求数是不变的,假设CPU 1秒的吞吐量是100,那么串行模式1秒可以处理7个请求 。
并行模式可以处理10个请求 。
综上所述 , 传统系统的性能(并发、吞吐量、响应时间)会有瓶颈 。为了解决这个问题,引入了消息队列 。
响应时间相当于注册信息写入数据库的时间,即50ms 。注册邮件和注册短信写入消息队列后 , 直接返回,所以写入消息队列的速度 。
很快,基本可以忽略不计,所以用户响应时间可能是50ms 。架构改变后 , 系统吞吐量提升20QPS秒,比串行提升3倍,比并行提升2倍 。
2.应用去耦
描述-用户下订单后,订单系统需要通知库存系统 。传统做法——订单系统直接调用库存接口 。
2.1传统做法的弊端:如果无法访问库存仓库 , 订单减少库存就会失败,导致订单失败,订单系统和库存系统耦合 。
为了解决传统方法的不足 , 引入了消息队列机制 。
订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户下单成功 。
库存系统:订阅订单信息,使用拉/推方式获取订单信息 。库存系统将根据订单信息进行库存操作 。
如果下单时库存系统无法正常使用 , 也不会影响正常下单,因为下单后,订单系统会将订单信息写入消息队列,不再关心其他操作 。
从而实现订单系统和库存系统的应用解耦 。
3.流量销售前置(一般广泛用于秒杀或抢团活动)
描述——尖峰活动,通常是因为流量过大,导致流量激增,应用挂起 。要解决这个问题,一般需要在应用程序前端加入消息队列 。
3.1流量峰值的作用(前端应用程序加入消息队列)
a、能够控制活动的人数;b,可以在短时间内缓解高流量的应用 。
服务器收到用户的请求后,首先将其写入消息队列 。如果消息队列长度超过最大数量,用户的请求将被直接丢弃或跳过错误页面 。
根据消息队列中的请求信息进行秒杀业务 , 然后做后续处理 。

    推荐阅读