Java消息服务~自动分配的消息头
消息头的值由JMS提供者来设置,开发者setJMSXxx()分配的值忽略。
JMSDestination
消息头使用一个Topic 或 Queue 对象来标识目的地。
Topic destination = (Topic) message.getJMSDestination();
JMSDeliveryMode
在JMS 中,传送模式有两种类型:持久模式和非持久模式。
一条持久性消息应该被传送“一次而且仅仅一次”,这就意味着如果JMS 提供者出现故障,该消息并不会丢失,它会在服务器恢复正常之后再次传送。
一条非持久性消息最多只会传送一次,这意味着如果JMS 提供者出现故障,该消息可能会永久丢失。
在持久性和非持久性这两种传递模式总,消息服务器都不会将一条消息向同一消费者发送一次以上。
int deliveryMode = message.getJMSDeliveryMode();
if (deliveryMode == DeliveryMode.PERSISTENT) {...
} else {...
}
传送模式可以使用生产者(TopicPublisher 或 QueueSender)的 setJMSDeliveryMode() 方法来设定。默认为PERSISTENT
// 在消息生产者上设置JMS 传送模式
TopicPublisher topicPublisher = topicSession.createPublisher(topic);
topicPublisher.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
JMSMessageID
JMSMessageID 是一个String 类型的值,它唯一地标识了一条消息。至于标识符是如何实现唯一的,这取决于厂商。
String messageId = message.getJMSMessageID();
JMSTimestamp
JMSTimestamp 由 MessageProducer 在调用send() 操作时自动设置。它包含的是JMS 提供者接收消息的时间,而不是该消息实际传送的时间。
long timestamp = message.getJMSTimestamp();
JMSExpiration
一个Mesage 对象的有效期(expiration date)用来防止把过期的消息传送给消费者。
long timeToLive = message.getJMSExpiration();
消息的有效期以毫秒为单位,使用setTimeToLive() 方法在生产者(TopicPublisher)上设置:
TopicPublisher topicPublisher = topicSession.createPublisher(topic);
// 将生存时间设置为1 小时(1000毫秒 * 60 * 60)
topicPublisher.setTimeToLive(3600000);
默认将timeToLive 设置为零(0),这表明该消息没有到期时间。
JMSRedelivered
JMSRedelivered 消息头表示该消息将被重新传送给消费者。如果消息被重新传送,JMSRedelivered 消息头就为 true,否则为 false。
boolean isRedelivered = message.getJMSRedelivered();
JMSPriority
消息优先级有两类:0~4级是普通优先级,而5~9级则是加急优先级。加急优先级的消息要比普通优先级的消息优先传送:
int priority = message.getJMSPriority();...TopicPublisher topicPublisher = topicSession.createPublisher(topic);
topicPublisher.setPriority(9);
Java消息服务~自动分配的消息头相关推荐
- Java消息服务~开发者分配的消息头
生产者传送该消息之前在Message 对象上设置 JMSReplyTo 有些情况下,一个JMS消息生产者可能会要求消费者对一条消息做出应答.JMSReplyTo 消息头包含了一个javax.jms.D ...
- dhcp服务器分配指定ip,DHCP服务(自动分配IP、绑定固定IP)
DHCP协议 DHCP(Dynamips Host configuration Protocal)动态主机配置协议是一种基于UDP协议且仅限于在局域网内部使用的网络协议,主要用于大型的局域网环境或者存 ...
- 微服务 —— 消息服务中间件 JMS
一.消息服务中间件 对于大多数应用来说,可采用消息服务中间件来提升系统异步通信,消息解耦问题. 消息的作用:异步处理.应用解耦.流量削峰. 异步消息中的两个概念:消息代理.目的地 当消息发送者发送消息 ...
- 微众银行的金融级消息服务平台建设实践和思考
来自:阿里巴巴中间件 导读: 近年来,随着微服务架构的流行,分布式消息引擎在物联网.分布式事务.实时计算和大规模缓存同步等场景中的应用日益增多.本文将分享微众银行基于RocketMQ构建消息服务平台的 ...
- 消息服务MNS和消息队列ONS产品对比
目前两个产品的区别如图: 对比项目 消息服务(MNS,原MQS) 消息队列(ONS) queue模型 Yes(支持长轮询) Yes topic模型 Yes Yes 官方SDK Java,C++,Pyt ...
- Java消息服务JMS详解
2019独角兽企业重金招聘Python工程师标准>>> JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业 ...
- JAVA消息服务JMS规范及原理详解
一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进 ...
- JMS : Java Message Service (Java消息服务)之一 [转]
为什么80%的码农都做不了架构师?>>> 1 引言 1.1 编写目的 本文作为B2bi项目中开源产品JORAM的使用指导文档,旨在帮助项目组人员方便明了的进行JMS模块的详细设 ...
- ActiveMQ学习总结(5)——Java消息服务JMS详解
JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互. JMS的编程过程很简单,概 ...
最新文章
- 第一记: JS变量类型判断(VUE源码解读)
- shell 语法格式
- STM32cube HAL库 UART串口中断方式收发任意长度 调试笔记
- kubeadm部署k8s_(Ansible)三分钟部署一套高可用/可扩展的kubeadm集群
- wxWidgets:键盘 wxWidgets 示例
- ps自定义形状工具_PS教程——用PS绘制虚线的三种方法
- Java006-面向对象(继承)
- (转)Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门
- C++中的两个知识点
- 字节回应阿里涉侵犯男员工曾面试并通过一面;HarmonyOS 2.0用户数升至5000万|极客头条...
- 阿里云ECS+Nginx+nginx_rtmp_module+FFMPEG服务器搭建过程
- Python-序列常用方法 + * += extend append方法区别
- 根据银行账号判定所属银行
- csrss.exe介绍
- BTA分论坛现场直击 | 区块链行业应用有待落地,游戏上链冰火两重天
- 【文献阅读】机器学习中的超参数窃取Stealing Hyperparameters in Machine Learning
- 29、NeRV: Neural Reflectance and Visibility Fields for Relighting and View Synthesis
- momentum chrome 插件安装
- Nginx的proxy_pass和fastcgi_pass
- 如何才能实现自己的梦想
热门文章
- 美团点评技术年货:一本覆盖各技术领域、1200+页的电子书
- 论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述
- docker挂载文件躺过的坑
- 论文阅读课4-Long-tail Relation Extraction via Knowledge Graph Embeddings(GCN,关系抽取,2019,远程监督,少样本不平衡,2注意
- Aligning Plots in a Column作图列对齐
- MicroPython (一)点亮我的Led
- IP地址的分类——a,b,c 类是如何划分的
- CSS学习-网页导航栏
- 软件工程实践小队Scrum Meeting
- 计算机网络——数据链路层的概述