首页 > 其他分享 >activemq - jms规范

activemq - jms规范

时间:2024-11-04 09:09:47浏览次数:3  
标签:Java jms 规范 消息 JMS 优先级 message activemq 属性

什么是 JMS?

‌ActiveMQ JMS 是 Java Message Service 的缩写。‌

JMS 是 Java 平台上的一个标准 API,用于实现应用程序之间的消息传递和通信。

它是 Java EE 规范的一部分,旨在提供一个与厂商无关的 API,以便访问不同的消息中间件系统‌。

JMS 的组成结构和特点

很多内容之前已经提到,本文仅做一些补充,只介绍几个核心

|-------------------|-----------------------------------------------------------|
| JMS Broker | 消息服务器,作为server提供消息核心服务 |
| JMS Provider | 消息生产者,创建和发送消息的客户端应用 |
| JMS Consumer | 消息消费者,接收和处理消息的客户端应用 |
| JMS Message | 消息头、消息属性、消息体 |

消息头和消息属性

可选配置,详见 javax.jms.Message。

消息头和消息属性,并不是必填项,大都是生产者与消费者之间的一种约定;

类似于 http 中的 content-type,消费者读到这个属性,就知道该如何去解析消息了;

消息头的作用亦是如此,除了消息本身,有时候还要附加一些消息描述。

message.setObjectProperty(name, org);

用途举例:

‌路由和过滤‌:通过消息头中的信息,ActiveMQ 可以正确路由消息到目标消费者,同时可以根据需要进行消息过滤,确保只有符合条件的消息被处理。
‌优先级处理‌:根据消息头的优先级信息,ActiveMQ 可以优先处理高优先级的消息,确保关键业务能够及时响应。
‌增强消息的可追踪性‌:通过消息头中的发送者和时间戳等信息,可以更好地追踪消息的发送和接收情况,有助于问题排查和系统优化‌

一些对消息有影响的配置

// 设置持久化模式:队列重启的时候,是否需要恢复数据?
message.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
// 消息到期之前,如果消息还未发送,则直接清除,0 表示不清除
message.setJMSExpiration(1000);
// 消息优先级,从 0-9 十个级别,0-4是普通消息,5-9是加急消息。默认为 4
message.setJMSPriority(10);
// 唯一标识每个消息的标识。MQ 会给我们默认生成一个,我们也可以自己指定。
message.setJMSMessageID("test");

消息体

  • 简单文本(TextMessage),即一个字符串对象
  • 可序列化的对象 (ObjectMessage),即一个序列化的 Java对象
  • 属性集合 (MapMessage),即一套名称-值对
  • 字节流 (BytesMessage),即一个未解释字节的数据流
  • 原始值流 (StreamMessage),即Java原始值的数据流

标签:Java,jms,规范,消息,JMS,优先级,message,activemq,属性
From: https://www.cnblogs.com/chenss15060100790/p/18524415

相关文章

  • activemq - mqttv3
    相比于mqtt-client,mqttv3使用的人相对多些,如果出现问题,好排查一些。activemq部署MQTT服务查看文件:conf\activemq.xml,如果包含下面内容,activemq本身已经包含MQTT服务,不需要任何其它配置。activemq不局限于下面这些,还可以继续扩展,比如:NIO、SSL。前往官网查看:https://a......
  • 31.Redis开发规范与性能优化
    一、键值设计1.key名设计(1)【建议】:可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idtrade:order:1(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:user:{uid}:friends:messages:{mid......
  • 基于AI辅助下的高效高质量SCI论文撰写及投稿丨论文选题、文献调研、实验设计、数据分
    目录第一章、论文写作准备即为最关键第二章、开启论文写作之旅及AI大语言模型工具融合应用第三章、高效、高质量的图表制作及AI辅助应用第四章、论文自我审查、修改与润色第五章、投稿及根据审稿意见进行修订、改进第六章、学术诚信与规范第七章、常见问题与解决策略......
  • 软件测试规范面面观 - 测试计划
    软件测试计划作为软件测试中极为重要的一个规范性文档,本文我们来介绍测试计划的编写要点软件研发生命周期在说明软件测试计划应如何制定之前,我们先熟悉下软件研发生命周期的定义:软件开发生命周期(SoftwareDevelopmentLifeCycle,SDLC)包含了软件从开始到发布的不同阶......
  • 电能表预付费系统-标准传输规范(STS)(29)
    6.5.3DecoderKeygeneration6.5.3.1PANBlockconstructionMeterPANMeterPrimaryAccountNumberAuniqueidentificationnumberforeachSTS-compliantpaymentmeter.ItissharedbetweenthepaymentmeterandthePOS.EncodingitintotheDecoderKeyenforces......
  • 汉文博士新增《通用规范汉字表》等多个字表
    汉文博士的字表可以用于在部首、构型、粤拼和拼音检索中突出显示或筛选汉字。今天将之前上传的字表全部重新生成了一遍,在词典管理界面双击字表可查看字表内含的汉字数量。 另外,还新增了如下字表:现代汉语通用字表现代汉语常用字表通用规范汉字表台湾“常用国字”标准字体......
  • 项目结构和规范
    当然可以!以下是将您提供的内容重新组织和格式化后的版本,使其更易于阅读和理解:项目结构node_modules:项目依赖的包所在的目录public:存放favicon图标和HTML根模板src:项目代码目录api:请求接口配置assets:图片、字体等静态资源目录components:全局组件icons:......
  • AMBA AXI协议规范讲解(3)
    本小节重点讲述了AXI规范中的基本构成和基本协议,比如经典的握手协议以及尊徐的规范。A3、SingleInterfaceRequirements本章描述了单个主设备和从设备之间基本的AXI协议事务基本要求。包含以下几个部分:时钟和复位基本读写事务通道之间的关系事务结构A3.1Clockandrese......
  • 软硬件开发面试问题大汇总篇——针对非常规八股问题的提问与应答(代码规范与生态管理)
    软硬件开发,对于编码规范、生态管理等等综合问题的考察尤为重要。阐述下环形缓冲区的用途 环形缓冲区(RingBuffer)是一种固定大小的数据结构,常用于实现数据的流式传输或临时存储。在环形缓冲区中,当到达缓冲区的末尾时,它会回绕到开始部分,从而形成一个“环”。用途总结数......
  • express常见的规范以及各模块的作用与使用方式
    +---------------------++---------------------++---------------------+|app.js|<----->|routes/|<----->|controllers/|+---------------------++---------------------++-------------......