MQ简介:java
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通讯方法。应用程序经过写和检索出入列队的针对应用程序的数据(消息)来通讯,而无需专用链接来连接它们。消息传递指的是程序之间经过在消息中发送数据进行通讯,而不是经过直接调用彼此来通讯,直接调用一般是用于诸如远程过程调用的技术。算法
MQ特色:服务器
MQ的消费-生产者模型的一个典型的表明,一端往消息队列中不断的写入消息,而另外一端则能够读取或者订阅队列中的消息。MQ和JMS相似,但不一样的是JMS是SUN Java消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。数据结构
使用场景:异步
在项目中,将一些无需即时返回且耗时的操做提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提升了系统的吞吐量。ide
JMS简介:.net
JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,而且经过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。线程
JMS术语:翻译
1)JMS是实现JMS接口消息中间件中间件
2)Provider(MessageProvider):生产者
3)Consumer(MessageConsumer):消费者
4)PTP:Point to Point,即点对点的消息模型
5)Pub/Sub:publish/Subscribe,即发布/订阅的消息模型
6)Queue:队列目标
7)Topic:主题目标
8)ConnectionFactory:链接工厂,JMS用他建立链接
9)Connection:JMS客户端到JMS Provider的链接
10)Destination:消息的目的地
11)Session:会话,一个发送或者接受的线程
JMS的队列消息传递过程以下图(消费者与生产者):
JMS的主题消息传递过程以下图(发布/订阅):
JMS和MQ的关系:
JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程当中的全部数据结构和交互流程。而MQ则是消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者;MQ的实现能够基于JMS,也能够基于其余规范或标准。