首页 > Web开发 > 详细

JSM 基础

时间:2019-08-24 18:29:05      阅读:106      评论:0      收藏:0      [点我收藏+]

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

JMS组成和特点

JMS:JAVA消息服务,两个应用程序之间异步通讯的API。

   JMS provider:实现JMS接口和规范的消息中间件,也就是MQ服务器

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

   JMS consumer:消息消费者,客户端应用

   JMS message:

      消息头(MessageProducer.send(传入参数设置)):
          JMSDestination:消息发送的目的地(接口),Queue,Topic(实现)
          JMSDeliveryMode:持久(一次仅仅一次,服务器故障消息不会丢失)与非持久模式(最多一次)
          JMSExpiration:设置消息的过期时间(默认0:永不过期),过期后被清除
          JMSPriority:优先级(0-9,默认4级)
          JMSMessageID:唯一识别的每个消息的标识(由MQ产生)

      消息体(Session.createTextMessage(参数)):
          封装具体的消息数据,发送与接受消息的数据类型必须一致
          五种格式:
              TextMessage:普通字符串 String
              MapMessage:key(String) value(java基本类型)
              BytesMessage:二进制数组消息 byte[]
              StreamMessage:java数据流消息
              ObjectMessage:对象消息,包含可序列化的java对象

      消息属性(发送方:TextMessage.set... / 接收方:TextMessage.get...):
          识别/去重/重点标注

JMS的可靠性

     PERSISTENT:持久性
         持久:服务器宕机,数据存在(默认)
         非持久:服务器宕机,数据不存在

     事务(connection.createSession(false, Session.AUTO_ACKNOWLEDGE);):
         如果是true,开启事务,需要先执行send,再执行commit,消息才会正真提交到队列中
         消费者如果事务回滚或者未提交,会再次接收到消息

     Acknowledge:签收
         默认自动签收Session.AUTO_ACKNOWLEDGE
         手动签收需要反馈:Message.acknowledge();
         有事务的签收:自动手动一样,但是必须comment

JSM 基础

原文:https://www.cnblogs.com/loveer/p/11405564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!