java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 消息队列详解

Messges Queue消息队列详解

作者:悦.L

这篇文章主要介绍了Messges Queue消息队列详解,消息队列一般简称为 MQ,是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器,需要的朋友可以参考下

1、什么是消息队列

消息队列一般简称为 MQ (Messges Queue),是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器。

消息队列本质上是一个队列,而队列中存放的是一个个消息。

队列是一个数据结构,具有先进先出的特点。

而消息队列就是将消息放到队列里,用队列做存储消息的介质。

消息的发送放称为生产者,消息的接收方称为消费者。

消息队列由 Broker(消息服务器,核心部分)、Producer(消息生产者)、Consumer(消息消费者)、Topic(主题)、Queue(队列)和Message(消息体)组成。

2、消息队列特点

假设系统只能处理1000个请求,但这时突然来了3000个请求,如果不加以限制就会造成系统瘫痪。使用消息队列做缓冲,将多余的请求存放在消息队列中,等系统根据自己处理请求的能力去消息队列去。

假设某个服务 A 需要调用服务 B,但是服务 B 突然出现问题,这样会导致服务 A 也会出现问题。如果使用消息队列,当服务 A 执行完成之后,发送一条消息到队列中,服务 B 读取到这条消息,那么它立刻开始进行业务的执行。

假设有一个业务,要先执行服务 A ,然后服务 A 去调用服务 B ,当服务 B 完成之后,服务 A 调用服务 C,这个业务需要一步步走下去。当使用了消息队列之后,服务 A 完成之后,可以同时执行服务 B 和 服务 C ,这样就减低业务的响应时间,提高用户体验。

3、消息队列的的传输模式

在这里插入图片描述

消息生产者将消息发送到Queue(队列)中,然后消息消费者从Queue(队列)找取出消息,当消息被消费之后就从Queue(队列)中删除,消息只能被一个消息消费者使用。

在这里插入图片描述

消息生产者和消息消费者只有建立了订阅关系才能收到消息。

Topic(主题)实现了发布和订阅,当消息生产者发布一个消息,所有订阅这个Topic(主题)的服务都能得到这个消息。

有两种订阅类型:

4、常用的消息队列

到此这篇关于Messges Queue消息队列详解的文章就介绍到这了,更多相关消息队列详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文