`

ActiveMQ JMS(1)

JMS 
阅读更多
JMS接口描述

    JMS 支持两种消息类型PTP 和Pub/Sub,分别称作:PTP Domain 和Pub/Sub Domain,这两种接口都继承统一的JMS Parent 接口,JMS 主要接口如下所示:

JMS Parent    PTPDomain Pub/Sub Domain 
ConnectionFactory QueueConnectionFactory TopicConnectionFactory
Connection QueueConnection TopicConnection
Destination Queue Topic
Session QueueSession TopicSession
MessageProducer QueueSender TopicPublisher
MessageConsumer QueueReceiver,QueueBrowser TopicSubscriber


      以下是对这些接口的简单描述:
    ConnectionFactory :连接工厂,JMS 用它创建连接
    Connection :JMS 客户端到JMS Provider 的连接
    Destination :消息的目的地
    Session: 一个发送或接收消息的线程
    MessageProducer: 由Session 对象创建的用来发送消息的对象
    MessageConsumer: 由Session 对象创建的用来接收消息的对象



JMS消息模型

JMS 消息由以下几部分组成:消息头,属性,消息体。

    消息头(Header) - 消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如:JMSDestination,JMSMessageID 等。

消息头 由谁设置
JMSDestination send 或 publish 方法
JMSDeliveryMode send 或 publish 方法
JMSExpiration send 或 publish 方法
JMSPriority send 或 publish 方法
JMSMessageID send 或 publish 方法
JMSTimestamp send 或 publish 方法
JMSCorrelationID 客户
JMSReplyTo 客户
JMSType 客户
JMSRedelivered JMS Provider



      属性(Properties) - 除了消息头中定义好的标准属性外,JMS 提供一种机制增加新属性到消息头中,这种新属性包含以下几种:
    1. 应用需要用到的属性;
    2. 消息头中原有的一些可选属性;
    3. JMS Provider 需要用到的属性。
    标准的JMS 消息头包含以下属性:
   JMSDestination --消息发送的目的地
   JMSDeliveryMode --传递模式,有两种模式: PERSISTENT 和NON_PERSISTENT,PERSISTENT 表示该消息一定要被送到目的地,否则会导致应用错误。NON_PERSISTENT 表示偶然丢失该消息是被允许的,这两种模式使开发者可以在消息传递的可靠性和吞吐量之间找到平衡点。
   JMSMessageID 唯一识别每个消息的标识,由JMS Provider 产生。
   JMSTimestamp 一个消息被提交给JMS Provider 到消息被发出的时间。
   JMSCorrelationID 用来连接到另外一个消息,典型的应用是在回复消息中连接到原消息。
   JMSReplyTo 提供本消息回复消息的目的地址。
   JMSRedelivered 如果一个客户端收到一个设置了JMSRedelivered 属性的消息,则表示可能该客户端曾经在早些时候收到过该消息,但并没有签收(acknowledged)。
   JMSType 消息类型的识别符。
   JMSExpiration 消息过期时间,等于QueueSender 的send 方法中的timeToLive 值或TopicPublisher 的publish 方法中的timeToLive 值加上发送时刻的GMT 时间值。如果timeToLive值等于零,则JMSExpiration 被设为零,表示该消息永不过期。如果发送后,在消息过期时间之后消息还没有被发送到目的地,则该消息被清除。
   JMSPriority 消息优先级,从0-9 十个级别,0-4 是普通消息,5-9 是加急消息。JMS 不要求JMS Provider 严格按照这十个优先级发送消息,但必须保证加急消息要先于普通消息到达。

    消息体(Body) - JMS API 定义了5种消息体格式,也叫消息类型,你可以使用不同形式发送接收数据并可以兼容现有的消息格式,下面描述这5种类型:

消息类型 消息体
TextMessage java.lang.String对象,如xml文件内容
MapMessage 名/值对的集合,名是String对象,值类型可以是Java任何基本类型
BytesMessage 字节流
StreamMessage Java中的输入输出流
ObjectMessage Java中的可序列化对象
Message 没有消息体,只有消息头和属性。
分享到:
评论

相关推荐

    activeMq jms需要的jar包

    1. activemq-client.jar:这是核心客户端库,包含了与ActiveMQ服务器通信所需的所有类和接口。它可以让你创建连接工厂、消费者、生产者,并发送和接收消息。 2. javax.jms-api.jar:这个JAR包提供了JMS API的规范...

    activeMQ JMS WEB 例子

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它实现了Java消息服务(JMS)标准,用于在分布式系统中高效地传递消息。JMS是一种API,它定义了生产、发送、接收和消费消息的标准接口,使得不同的应用系统...

    Spring整合Blazeds实现ActiveMQ JMS消息服务

    1. **配置Spring**:在Spring的配置文件中,你需要定义一个`ConnectionFactory` bean,用于连接到ActiveMQ服务器。此外,还需要配置目的地(如Queue或Topic),以便发送和接收消息。 2. **设置Blazeds**:Blazeds...

    ActiveMQ在JMS中的运用-深入浅出JMS

    **ActiveMQ在JMS中的应用——深入理解JMS** Java消息服务(Java Message Service,简称JMS)是一种标准API,用于在Java应用程序之间传递消息,它提供了一种解耦和异步处理数据的方式。JMS允许应用程序创建、发送、...

    activeMQ JMS 3种创建方式

    1. 配置ConnectionFactory:声明一个JMS连接工厂,并指定ActiveMQ服务器的URL和其他参数。 2. 配置Destination:定义QUEUE或TOPIC,包括其名称。 3. 配置MessageProducer和MessageConsumer:指定目的地和消息类型。 ...

    tomcat activemq jms所需包

    4. **JMS相关库**:在描述中提到的“jms所需包”可能包含了ActiveMQ的客户端库和其他JMS相关的jar文件,如`activemq-client.jar`、`geronimo-jms_1.1_spec.jar`等。这些库文件是Tomcat应用程序使用JMS与ActiveMQ通信...

    activemq jms的使用

    "activemq jms的使用"这个主题涵盖了如何在实际项目中运用ActiveMQ来实现基于JMS的消息传递。首先,我们需要理解JMS的核心概念,包括生产者(Producer)、消费者(Consumer)、队列(Queue)和主题(Topic)。生产者...

    Spirng Tomcat ActiveMQ JMS

    标题“Spring Tomcat ActiveMQ JMS”涉及到的是一个集成应用,涵盖了Java企业级开发中的三个重要组件:Spring框架、Tomcat应用服务器以及ActiveMQ消息中间件。这些技术都是Java EE开发中的基石,对于理解分布式系统...

    JMS.rar_activemq_jms_jms activemq

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它是Java消息服务(Java Message Service,简称JMS)的一个实现。JMS是一种为分布式应用提供异步消息传递的API,它定义了一种标准接口,使得不同的消息系统...

    activemq-jms-pool-5.9.0.jar

    标签:activemq-jms-pool-5.9.0.jar,activemq,jms,pool,5.9.0,jar包下载,依赖包

    activemq-jms-pool-5.9.1.jar

    标签:activemq-jms-pool-5.9.1.jar,activemq,jms,pool,5.9.1,jar包下载,依赖包

    activeMQ-JMS实例

    1. **配置ActiveMQ**: 首先,我们需要在项目中引入ActiveMQ的相关依赖。在pom.xml文件中,添加ActiveMQ和Spring JMS的依赖项。然后,配置ActiveMQ服务器,可以通过修改activemq.xml文件来设定服务器的端口、存储...

    activemq-jms-pool-5.14.4.jar

    activemq-jms-pool-5.14.4.jar

    SpringJMS整合ActiveMQ

    详细内容: SpringJMS整合ActiveMQ.doc 详细说明文档 apache-activemq-5.8.0-bin.zip ActiveMQ安装包 JMSTest.rar MyEclipse8.5下web工程

    activemq-jms-pool-5.9.1-javadoc.jar

    标签:activemq-jms-pool-5.9.1-javadoc.jar,activemq,jms,pool,5.9.1,javadoc,jar包下载,依赖包

    activeMq in action 使用activeMq开发JMS的简单讲述

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于Java消息服务(JMS)标准,为分布式系统提供高效、可靠的消息传递。本篇文章将深入探讨如何使用ActiveMQ进行JMS开发,以及ActiveMQ的核心特性。 一、...

    jms-test.zip_jms activemq_jms test

    1. **Java消息服务(JMS)**:JMS是Java平台中用于在分布式环境中进行异步消息传递的标准接口。它提供了一组API,使得应用程序能够创建、发送、接收和读取消息。JMS支持两种主要的消息模型:点对点(队列)和发布/...

    activeMQ-jms

    Apache ActiveMQ是业界广泛使用的一款开源消息中间件,它基于Java Message Service (JMS) 规范,提供了高效、可靠的异步通信能力。在“activeMQ-jms”这个压缩包中,我们通常会找到Apache ActiveMQ 5.13.4版本的相关...

    JMS Apache ActiveMQ 安装包

    Apache ActiveMQ JMS实现

Global site tag (gtag.js) - Google Analytics