分布式-信息方式-JMS信息结构
JMS的消息结构
JMS消息由以下几部分组成:消息头,属性和消息体
消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如下:
1: JMSDestination:由send方法设置
2: JMSDeliveryMode:由send方法设置
3: JMSExpiration: Isend方法设置
4: IMSPriority:由 send方法设置
5: IMSMessage ID:山send方法设置
6: JMSTimestamp:山客广端设置
7: IMSCo1 relations:由客户端设置
8: IMSReply To:山客户端设置
9: JMSType:山客户端设置
10: JMSRedelivered: LLJMS P1 ovider设置
标准的JMs消息头包含以下属性:
1: JMSDestination:消息发送的目1的地:主要是指 Queue和 Topig,自动分配
2: JMSDelive1 vMode:传送模式。有两种:持久模式和非持久模式。一条持久性的
消息应该被传送“一次仅仅一次”,这就意味者如果JM提供者出现故障,该消
息并不会丢失,它会在服务器恢复之后再次传递。一条非持久的消息最多会传送
次,这意味这服务器出现故障,该消息将水远丢失。自动分配
3: JMSExpiration:消息过期时十间,等于 Destination的send方法中的
timetolive值加上发送时刻的GMT时间值。如果 timetolive值等」于零,则
JMSExpiration被设为零,表小该消息水不过期。如果发送后,在消息过期时间
之后消息还没有被发送到目1的地,则该消息被清除。自动分配
4: IMSPriority:消息优先级,从0-9十个级别,0-1是普通消息,5-9是加总消
思。JM不要求 JMS Provider严"格按照这十个优先级发送消息,但必须保证加
总消息要先于普通消息到达。默认是1级。自动分配
5: IMSMessageID:唯一识别每个消息的标识,由 IMS Provide产生。白动分配
6: IMSTimestamp:一个 JMS Provider在调用send)方法时自动设置的。它是消息被
发送和消费者实际接收的时间差。自动分配
7: JMSCorrelation ID:用来连接到另外一个消息,典型的应用是在回复消息中连接
到原消息。在大多数情况下, IMSCo1 elation用于将一条消息标记为对
JMSMessagelD标小的上一条消息的应答,不过, IMSCol1 elation可以是任何
值,不仅仅是JM5 MessageID。由开发者设置
8: JMSReply to:提供本消息回复消息的目的地址。由开发者设置
9: JMS Type:消息类型的识别符。由开发者设置
10: IMSRedelivered:如果一个客户端收到一个设置了 JMSRedelivered属性的消
息,则表小能客户端曾经在早些时侯收到过该消息,但并没有签收
( acknowledged)。如果该消息被重新传送, JMSRedelivered= true反之,
JMSRedelivered= false。自动设置
消息体,JMS API定义了5种消息体格式,也叫消息类型,可以使用不同形式发送
接收数据,并可以兼容现有的消息格式。包括: TextMessage、 Mapmessage、
Bytesmessage、StreamMessage、ObjectMessage
消息属性,包含以下:种类型的属性
1:应用程序设置和添加的属性,比如
Message setString Property("username", username)
2:JMS定义的属性
使用“JMSX"”作为属性名的前缀
connection, getMetaData(, get JMSXPropertyNames0,方法返回所有连接攴持
的JMSX属性的名字
3:JMS供应商特定的属性
4: JMSXGroup ID:消息所在消息组的标识,由客户端设置
5: jmsXgroupsec:组内消息的序号第一个消息是1,第二个是2,…,由客户端设置
6: JMSXProduce1TXID:产生消息的事务的事务标识,发送时提供商设置
7: IMSXConsumerTXID:消费消息的事务的事务标识,接收时提供商设置
8: JMSXRcvTimestamp:JMs转发消息到消费者的时间,接收时提供商设置
9: IMSXState:假定存在一个消息仓库,它存储了每个消息的单独拷贝,这些消
息从原始消息被发送时开始。每个拷贝的状态有:1(等待),2(准备),3
(到期)或(保留)。由于状态与生产者和消费者无关,所以它不是山它们来
提供。它只和在仓库中查找消息相关,因此JMs没有提供这种API。由提供商设置
分布式-信息方式-JMS信息结构的更多相关文章
- 分布式-信息方式- JMS基本概念
JMS基本概念 ■JMs是什么 JMS Java Messag/ Servite,Java消息服务 ...
- 分布式-信息方式-JMS Topic示例
Topic消息 非持久的 Topic消息示例对于非持久的 Topic消息的发送 基本跟前 ...
- 分布式-信息方式-JMS大纲
一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息, ...
- 分布式-信息方式-JMS可靠性机制
JMS的可靠性机制1.消息接收确认 JMS消息只有在被确认之后,才认为已经被成功地消费了.消息的成功消费通常包含三个阶段:客户接收消息.客户处理消 ...
- 分布式-信息方式-JMS Queue示例
代码 package test.mq.helloword; import javax.jms.Connection; import javax.jms.ConnectionFactory; impor ...
- 分布式-信息方式-ActiveMQ的Destination高级特性3
虚拟destination用来创建逻辑destination,客户端可以通过它来生产和消费消息,它会把消息映射到物理destination. ActiveMQ支持2种方式: 1:虚拟主题(Virtua ...
- 分布式-信息方式-ActiveMQ的Destination高级特性1
ActiveMQ的Destination高级特性 Destination高级特性----->Composite Destinations 组合队列Composite Destinations : ...
- 分布式-信息方式-ActiveMQ的集群
ActiveMQ的集群Queue consumer clusters ActiveMQ支持 Consumer对消息高可靠性的负载平衡消费,如果一个 Consumer死掉,该消 ...
- 分布式-信息方式-ActiveMQ静态网络连接的容错
容错的链接Failover Protocol 前面讲述的都是client配置链接到指定的 broker上.但是,如果 Broker的链接失败怎么办呢?此时, Client有两个选项:要么立刻死掉,要么 ...
随机推荐
- 华为wlan配置流程及相关重要步骤AC配置
本次介绍是AC+fitAP组网方式的重要步骤. 一.基础配置 1.规划好ac+ap的组网方式和转发方式.(本次以三层旁挂直接转发),规划管理vlan,业务vlan,与AC连接的vlan,以及他们接口的 ...
- 搞懂Redis复制原理
前言 与大多数db一样,Redis也提供了复制机制,以满足故障恢复和负载均衡等需求.复制也是Redis高可用的基础,哨兵和集群都是建立在复制基础上实现高可用的.复制不仅提高了整个系统的容错能力,还可以 ...
- Android开发build出现java.lang.NumberFormatException: For input string: "tle 0x7f0800aa"错误的解决方案
查看异常栈没有发现项目代码的问题,因为问题是出现在layout文件中. 全局查找tle这个,发现在某个layout文件中title一词被变成ti tle了,结果Android就xjb报错了. 参考
- 多边形面积(Area_Of_Polygons)
原理: 任意多边形的面积可由任意一点与多边形上依次两点连线构成的三角形矢量面积求和得出. 分析: 由于给出的点是相对于我们的坐标原点的坐标,每个点实际上我们可以当作一个顶点相对于原点的向量,如下图所示 ...
- 【原创】运维基础之Nginx(3)location和rewrite
nginx location =:精确匹配(必须全部相等) ~:大小写敏感,正则匹配 ~*:忽略大小写,正则匹配 ^~:只需匹配uri部分,精确匹配 @:内部服务跳转,精确匹配 优先级: Exact ...
- centos配置mutt和msmtp发送邮件
一.安装mutt yum install mutt -y 二.配置mutt vim /etc/Muttrc 在里面找到下面几行,并将内容修改为你自己的内容(下面几行分布在不同位置,请耐心查找,记得去掉 ...
- Vue+axios 拦截,超时登录问题
axios.interceptors.request.use(config => config, error => Promise.reject(error)); axios.interc ...
- Proxy.newInstance与InvocationHandler的使用示例
先定义一个接口,根据代理模式的原理,被代理类与代理类都要实现它. public interface Person { void eat(); } 再写一个实际执行任务的类(被代理类): public ...
- Python、mysql四-1:单表查询
一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...
- tornada-基础
回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有一个对 ...