MQ、JMS 关系的理解

MQ简介:

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。

MQ特点:

MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN Java消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。

使用场景:

在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

JMS简介:

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,也可以基于其他规范或标准。

原文地址:https://www.cnblogs.com/steven520213/p/6810369.html