zoukankan      html  css  js  c++  java
  • 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,也可以基于其他规范或标准。

  • 相关阅读:
    【转】23种设计模式详解
    JavaScript 中的对象引用
    iOS网络请求之NSURLSession
    学习编程是否做笔记的思考
    汇编语言——统计一个字符串中的大写字母、小写字母、数字和其他字符的个数,并显示
    windows7 64位如何调出debug
    Code:Blocks编写后出现如下错误
    iOS中Git的使用
    任意定义一个二维数组,实现矩阵的转置——java
    将八进制数转换为十进制数——java
  • 原文地址:https://www.cnblogs.com/steven520213/p/6810369.html
Copyright © 2011-2022 走看看