spring 中的JMS是什么?

程序员看源码是成长的必要条件,最近在看spring的源码,看到spring框架中有一个模块是JMS,那么JMS到底是什么呢?那我们分成几个步骤来了解下吧。

1.什么是JMS?以及JMS的作用。

JMS:Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用来在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

比如2个应用程序之间需要进行消息传递,我们可以使用JMS服务进行消息的传递,通过使用JMS使2个应用程序之间解耦合。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。并且不会重复创建消息,保证了消息的可靠性。

2.JMS的消息模型。

JMS具有两种通信模式:点对点和发布/订阅通信模型。在JMS api 出现之前,大部分产品使用其中一种通信模型进行通信,JMS api 定义了这2中通信模型的规范,提供了通用接口,保证我们使用基于JMS api编写的应用程序适用于任何一种模型。

a.点对点通信模型

spring 中的JMS是什么?

点对点通信模型

在点对点通信模型中,应用程序由消息发送方,队列,消息接收方组成,消息发送方把消息放到队列中,消息接收方从队列中获取消息,然后返回给队列一个成功应答。当队列中的消息被获取或者是超时,那么队列中的消息也就没有了存在的意义。在这种模型中,消息接收方和消息发送方互不影响,消息是否被接收不影响消息的发送,反之亦然。在这种模型中每个消息只有一个消息接收方。

b.发布/订阅模型

spring 中的JMS是什么?

发布/订阅模型

在发布订阅模型中可以有多个客户端,消息发布方把消息发送到Topic中,消息通过Topic传递给所有的客户端即消息订阅者,发布者和消息订阅者都是匿名的,但是在这种模式下,必须有订阅者(及消费消息的对象)的存在且一直运行,发布者才能发布消息。Topic主要用于保存消息和传递消息,并且会保存消息直到消息被传递给客户端。JMS允许订阅者创建一个可持久化的订阅,这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。

3.JMS编程模型。

spring 中的JMS是什么?

JMS编程模型

JMS应用程序由这几个模块组成:

a.管理对象(Administered objects)

管理对象是系统管理员预先配置的JMS对象,主要管理 连接工厂(Connection Factories)和目的地(Destination)这两个对象。连接工厂是提供JMS服务提供者和客户端之间的连接服务,目的地时指定消费被发送到的指定位置。

b.连接对象(Connections)

连接对象封装了与JMS提供者之间的虚拟连接。

c.会话(Sessions)

用于生产和消费消息,可以创建出消息生产者和消息消费者。

d.消息生产者(Message Producers)

消息生产者是由Session创建的,用于往目的地发送消息用的。

e.消息消费者(Message Consumers)

消息消费者是由Session创建的,用于接收目的地发送的消息的。

f.消息监听者(Message Listeners)

JMS消息监听器是消息的默认事件处理者,用于定义消息到达后的处理动作。

4.消息的五种消息体。

JMS消息由消息头和消息体组成,消息体包含五种类型,分别为 简单文本(TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。

猜你喜欢

转载自blog.csdn.net/wzs535131/article/details/107292552