JMS
Posted steakliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
结果:
以上是关于JMS的主要内容,如果未能解决你的问题,请参考以下文章