一文读懂什么是JMS规范

一、JMS是什么

java消息服务(java message service即JMS)应用程序接口是一个java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。java消息服务是一个与具体平台无关的API。

对应的API接口就在javax.jms包下面:

二、JMS的对象模型

 

ConnectionFactory连接工厂
Connection连接
Session会话
Destination目的
MessageProducer生产者
MessageConsumer消费者
Message消息
Broker消息中间件的实例

也就是说,当我们去实现JMS规范的具体实现时,需要考虑上述因素,去将这些模型都有对应的实现。

三、JMS 的消息模型

  • Point-to-Point(P2P)/点对点:也就是一条消息发送给一个消费者去消费,点对点模式一般是和Queue使用,也就是消息发送到Queue中,消费者从Queue中消费消息。

  • Publish/Subscribe(Pub/Sub)/主题(发布订阅):发布订阅模式一般适合Topic关联,一个生产向topic中发送消息,只要订阅了这个topic的消息者,都可以接收到这条数据。

四、JMS的消息结构

jms的消息结构只要包括三个方面:消息头、消息属性、消息体。

  • 消息头:关于一些消息的描述信息

JMSDestination

消息的目的地,Topic或者Queue

JMSDeliveryMode

消息的发送模式

JMSTimestamp

消息传递给Broker的时间戳,它不是实际发送的时间

JMSExpiration

消息的有效期,在有效期内,消息消费者才可以消费这个消息

JMSPriority

消息的优先级。0-4为正常的优先级,5-9为高优先级

JMSMessageID

一个字符串用来唯一标示一个消息

JMSReplyTo

有时消息生产者希望消费者回复一个消息,JMSReplyTo为一个Destination,表示需要回复的目的地

JMSCorrelationID

通常用来关联多个Message

JMSType

表示消息体的结构,和JMS提供者有关

JMSRedelivered

如果这个值为true,表示消息是被重新发送了

  • 消息属性:可以理解为消息的附加信息头,属性名可以自定义。
  • 消息体类型 :发送消息的消息格式,有一下5中类型

BytesMessage

用来传递字节消息

MapMessage

用来传递键值对消息

ObjectMessage

用来传递序列化对象

StreamMessage

用来传递文件等

TextMessage

用来传递字符串

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值