JMS即Java Message Service(Java消息服务应用接口),是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS作为Java SE的基础内容,在许多的开发项目中都能用得到。
在中大型的项目中,很多都用到了被叫做面向消息的中间件(Message Oriented Middleware),通常简称消息中间件,现在流行的消息中间件产品主要有ActiveMQ,RabbitMQ,Kafka,RocketMQ等等,很多大型的商业软件使用这些产品构建应用程序的消息系统,消息在应用程序中的各个模块(或者服务)之间传递,以此达到解耦,削峰,提高应用程序的吞吐量等目的。
因为产品众多,如果没有一个成熟的规范来约束,那么各个产商消息中间件的具体实现可能会大相径庭,使得开发者在切换产品的时候非常麻烦,不得不重新编写大量代码来适应产品。JMS就是这么一个规范,它定义了一个消息中间件产品应该具有哪些组件,哪些接口等等,如果消息中间件都能根据规范定义的接口来实现的话,开发者在构建消息系统的时候只需要付出很少的代价来切换不同的产品,因为接口都是一样的,几乎不需要如何修改代码。
JMS规范定义的几个组件如下所示:
1.JMS Provider。提供消息服务的组件,用来为JMS客户端提供服务,JMS客户端可以有生产者客户端和消费者客户端等。
2.JMS Message。即消息传递实体。
3.JMS Domains。即消息传递的目的地。
JMS Message包含了如下几个部分:
1.Header。所有的消息都有相同的Header字段集合,类似HTTP Header,这些字段用于在客户端和服务端(provider)之间做路由或者身份认证等,包括JMSDestination,JMSMessageID,JMSTimestamp等。
2.Properties。即属性,是可选项,一个属性由一个键值对构成,键是属性名,值是属性的值。应用程序可以自定义属性,并将其附在Message上和Header以及Body一起发送出去。
3.Body,即消息体主体,例如对于普通的文本消息,消息主题就是本文内容,例如“Hello”字符串。
以上是动力节点在线的Java SE视频课程对JMS的简单介绍,更多关于JMS规范的内容,建议观看动力节点在线的相应视频课程,Java基础知识全面免费学习。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54