消息中间件MQ概述

消息中间件MQ概述

1、什么是消息中间件?


消息中间件是分布式系统中的一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程间的通信。

2、消息中间件能做什么?


消息中间件主要解决的是分布式系统之间消息传递的问题,能够屏蔽各种平台以及协议之间的特性,实现应用程序之间的协同。

2.1异步处理

一个注册流程如下所示:如果每个过程都花费1s时间,则整个过程需要4s,其实后面的三个流程之间是弱依赖的,这三个流程并没有先后关系,因此可以将串行改为并行,提升整体性能。因此很顺利的想到多线程的概念,但多线程不能方便的解决消息持久化,消息的重传等问题,因此引入消息中间件来处理这个问题。

在这里插入图片描述

引入消息中间件后的流程图:

2.2 应用解耦

场景说明:订单服务结束后,需要调用库存服务,如果库存服务因为网络原因无法访问,因此订单服务也必须回滚。

在这里插入图片描述

引入消息中间件后:

订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功。无需关心后续的业务。

库存系统:订阅下单的消息,采用拉/推的方式,获取下单信息,库存系统根据下单信息,进行库存操作。
在这里插入图片描述

2.3 流量削峰

场景说明:秒杀系统,一般因为流量过大,流量暴增,导致应用挂掉,一般采用消息队列控制活动人数,缓解短时间内高流量压垮应用。

在这里插入图片描述

请求到来时,放入消息队列中,若消息队列容量已经达到指定容量,则该请求不予处理,之间返回商品已经出售完毕之类的信息,然后秒杀服务通过推/拉的方式从队列中取出请求,进行处理。

3、消息中间件发展史

4、常用消息中间件的比较

在这里插入图片描述

5、JMS规范

JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,实际上是一套api,类似于JDBC。它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,ActiveMQ而是这个规范的一个具体实现。

猜你喜欢

转载自blog.csdn.net/weixin_43213517/article/details/105405533
今日推荐