什么是JMS(消息服务) 您所在的位置:网站首页 什么是gms服务 什么是JMS(消息服务)

什么是JMS(消息服务)

2024-07-12 03:54| 来源: 网络整理| 查看: 265

JMS的定义

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持,可以类比JDBC技术,不同的厂商对JDBC做了不同的实现。

JMS的组成

JMS由JMS provider、JMS producer、JMS consumer、JMS message组成。下面给出这些概念的定义。

JMS provider

实现JMS接口和规范的消息中间件,也就是我们的MQ服务。

JMS producer

消息生产者,创建和发送JMS消息的客户端应用。

JMS consumer

消息消费者,接收和处理JMS消息的客户端应用。

JMS message

JMS message由消息头、消息体、消息属性3部分组成。

消息头

消息头有5个比较常见的属性,分别是JMSDestination、JMSDeliveryMode、JMSExpiration 、JMSPriority、JMSMessageID,下面这个表格展示了它们所代表的意义。

属性意义JMSDeliveryMode持久和非持久模式,一条持久性的消息应该被传送“一次仅仅一次“,这就意味着如果JMS提供者出现故障,该消息并不会丢失,它会在服务器恢复之后再次传递。一条非持久的消息最多会被传送一次,这就意味着服务器如果出现故障,该消息将永远丢失JMSExpiration可以设置消息在一定时间以后过期,默认是永不过期。消息过期时间等于Destination的send方法中的timeToLive值加上发送时刻的GMT时间值,如果timeToLive值等于零,则JMSExpiration被设为零,表示该消息永不过期。如果发送后,在消息过期时间之后消息还没有被发送到目的地,则该消息被清除JMSPriority消息优先级,从0-9十个级别,0-4是普通消息,5-9是加急消息。JMS不要求MQ严格按照这十个优先级发送消息,但必须保证加急消息要先于普通消息到达。默认是4级JMSMessageID唯一识别每个消息的标识由MQ产生JMSDestination消息发送的目的地,主要是指Queue和Topic下面的代码演示了怎么设置这些属性。 public class JmsProduce { public static final String ACTIVEMQ_URL = "tcp://127.0.0.1:61616"; public static final String QUEUE_NAME = "queue02"; public static void main(String[] args) throws JMSException { //1.创建连接工场,按照给定Url地址,采用默认的用户名和密码 ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(); //2通过连接工场,获得连接connection并启动访问 Connection connection = activeMQConnectionFactory.createConnection(); connection.start(); //3.创建回话session,第一个参数是事务,第二个参数是签收 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //4.创建目的地(是队列还是主题(topic)) Queue queue = session.createQueue(QUEUE_NAME); //5.创建消息的生产者 MessageProducer messageProducer = session.createProducer(queue); //6.通过使用messageProducer生产3条消息发送到MQ的队列里面 for (int i = 1; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有