上节使用一个Chat的小例子说明了一下怎么使用ActiveMQ开发一个发布/订阅者模型。
前期回顾:05_Java通信_JMS_demo
这节来详细说一下一条消息的结构。
消息头
每一个JMS的消息都有一个固定格式的消息头,这些数据被提供set/get方法设置和获取。但是不是所有的消息头数据都需要设置,或者都能设置成功,部分是由JMS实现厂商设置好的。所以我们将这些消息头分为JMS自动分配消息头和开发者设置消息头。
下面是所有消息头的列表:
JMS自动分配消息头
JMSDestination:获得对象标识目的地:Topic或者queue
JMSDeliveryMode:获得消息的持久模式,如果是持久性,那么JMS提供者出现故障,该消息不会丢失,在服务器恢复后再次传送,非持久模式,如果JMS出现故障,该消息可能永久丢失
JMSMessageID:String类型的值,唯一标识一条消息
JMSTimestamp:在messageProducer在调用send()操作时自动设置,包含JMS提供者接收消息的时间
JMSExpiration:一个message对象的有效期,避免把过期的消息送给消费者
JMSRedelivered:消息被重新传送给消费者,如果该消息被重新传送JMSRedelivered消息头就为true,否则为false
JMSPriority:消息的优先级0-4普通;5-9加急
开发者设置消息头
JMSReplyTo:标明了JMS消费者应该应答的地址,在使用请求/应答模型时,通过这条消息头属性可以进一步实现生产者和消费者之间的去耦
JMSCorrelationID:用于将当前消息和先前的某些消息或者应用程序特定的ID关联起来
JMSType:标识消息结构和有效负载类型
消息属性
类似于消息头的附加信息,允许开发者添加不透明的附加信息。
类型:
应用程序特定属性
开发者提供,保存在message对象中,提供了多种类型的属性。属性如下
JMS定义的属性
JMS厂商提供特定属性
以上两种都是厂商提供绑定在消息头的附加信息
消息类型(有效负载)
Message接口是根据它们携带的有效负载种类来定义的
JMS提供了6个接口,来实现不同数据类型的负载
PS:上面划的是Message接口,其他5个都是类。其实其他5个也是接口!
TextMessage表示消息是一个文本格式
StreamMessage表示是流格式
MapMessage表示以键值对的形式传递消息
ObjectMessage消息的信息是一个对象,这个对象必须能够序列化
ByteMessage表示消息是字节流作为有效负载
相关推荐
java消息系统 JMS 学习代码 例子 jar
MQ软件提供一个JAVA软件包,里面有JMS类库,和一套MQ的类库。不熟悉MQI编程方法的程序员可以用JMS,比较熟悉MQI编程方法的程序则可以用...下面的小程序是使用Java实现从队列管理器QM_SERVER中的队列INITQ写入或读出消息
用jms 向webshpere mq里发送消息
文件包含: 13个不同固件 两个固件升级工具 其中一个是量产工具可以修改休眠时间和盒子信息 TRIM检查工具 有几个固件版本为全网首发,别人没有的资源 固件列表: JMS578_00.01.00.05 ...JMS578_254.02.03.09_NoUAS
Jmicron JMS583 Datasheet USB 3.1 Gen 2 to PCIe Gen3x2 Bridge
jms 简单的案例,用的activemq,使用jms前请先启动activemq服务器
使用WebSphere_MQ_Java和JMS_API_对消息进行分组.
并且TIBCO RV 具有认证消息传递(Certified Message Delivery) 、容错(Fault Tolerance) 和分布式队列(Distributed Queue)功能。因为使用TIBCO RV 不用考虑网络的技术细节,而只需专注于企业应用的开发,所以能快速...
Java消息服务支持两种消息模型:Point-to-Point消息(P2P)和发布订阅消息(Publish Subscribe messaging,简称Pub/Sub)。JMS规范并不要求供应商同时支持这两种消息模型,但开发者应该熟悉这两种消息模型的优势与缺点...
W25X20_20210512_4011_WD_MyBook_JMS578_Standard.BIN
JMS1.1规范教程 包含jms基本的接口说明,等
JMicron JMS578 USB/SATA bridge JMS578介绍手册JMS578_Product+Brief.pdf JMS578固件(支持Android系统/linux系统) JMS578 windows的烧录工具和JMS578FwUpdate JMS578-Hardkenel-Release-v173.01.00.02-20190306....
什么是消息服务 为什么使用消息服务 什么是JMS(Java Message Service) JMS的通信方式 JMS应用程序开发步骤 JMS应用程序开发实践 其他的JMS特性
Java+Message+Service+JMS+java消息服务
JMS Java Message Service Java消息服务。是JAVA EE中的一个技术,JMS定义了JAVA中访问消息中间件的接口。类似JDBC。定义了接口,并不具体实现。实现JMS接口消息的中间件称为JMS Provider.
一个完整的flex与java整合通信实例源码 采用了blazeds技术与java通信
利用ActiveMQ中间件发送JMS消息的例子
J2SE应用编程JMS设计代码JMS Design J2SE application programming code
JMS-java message Service ,消息队列原理介绍,适合activeMQ开发使用
geronimo-jms_1.1_spec-1.0.jar