JMS
JMS介绍
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于JDBC(Java Database Connectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。
示意图
JMS组成结构
1.JMS provider : 实现JMS接口和规范的消息中间件,如ActiveMQ,Kafka等
2.Producer:消息生产者
3.Consumer:消息消费者
4. message:消息(最重要)
消息头:
(1):JMSDestination:消息传递的目的地
(2):JMSDeliveryMode , 持久模式和非持久模式
持久性的消息:当消息传递时,MQ宕机了,消息不会丢失,服务器恢复后再次传递
非持久化消息:消息最多传递一次,并且服务出现故障后,消息永远丢失
(3):JMSExpiration:设置消息过期时间,默认永不过期
(4):JMSPriority:优先级
消息优先级,从0-9十个级别,0-4普通消息,5-9加急消息,JMS不要求MQ严格按照十个级别发送消息,但是必须保证加急消息要优于普通消息到达,默认时4级
5):JMSMessageID:唯一识别每个消息的标识(最重要的一个)
消息体:封装消息的具体内容
如:
发送和接收的消息必须一致
消息属性:
如果需要除消息头字段以外的值,那么可以使用消息识别/去重/重点标注等方法
如某条消息很重要,需要标识
如:
Producer
Consumer
结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端