1. JMS基本概念
JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。
对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接收者读取之后,它就在这个Queue中消失了,所以一个消息只能被一个接收者消费。
与点到点模型不同,发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个Topic中,这个Topic可以同时有多个接收者在监听,当一个消息到达这个Topic之后,所有消息接收者都会收到这个消息。
简单的讲,点到点模型和发布/订阅模型的区别就是前者是一对一,后者是一对多。
2. 几个重要概念
Destination :消息发送的目的地,也就是前面说的Queue和Topic。创建好一个消息之后,只需要把这个消息发送到目的地,消息的发送者就可以继续做自己的事情,而不用等待消息被处理完成。至于这个消息什么时候,会被哪个消费者消费,完全取决于消息的接受者。
Message :从字面上就可以看出是被发送的消息。它有下面几种类型:
StreamMessage:Java 数据流消息,用标准流操作来顺序的填充和读取。
MapMessage:一个Map类型的消息;名称为 string 类型,而值为 Java 的基本类型。
TextMessage:普通字符串消息,包含一个String。
ObjectMessage:对象消息,包含一个可序列化的Java 对象
BytesMessage:二进制数组消息,包含一个byte[]。
XMLMessage: 一个XML类型的消息。
最常用的是TextMessage和ObjectMessage。
Session: 与JMS提供者所建立的会话,通过Session我们才可以创建一个Message。
Connection: 与JMS提供者建立的一个连接。可以从这个连接创建一个会话,即Session。
ConnectionFactory: 那如何创建一个Connection呢?这就需要下面讲到的ConnectionFactory了。通过这个工厂类就可以得到一个与JMS提供者的连接,即Conection。
Producer: 消息的生产者,要发送一个消息,必须通过这个生产者来发送。
MessageConsumer: 与生产者相对应,这是消息的消费者或接收者,通过它来接收一个消息。
前面多次提到JMS提供者,因为JMS给我们提供的只是一系列接口,当我们使用一个JMS的时候,还是需要一个第三方的提供者,它的作用就是真正管理这些Connection,Session,Topic和Queue等。
通过下面这个简图可以看出上面这些概念的关系。
ConnectionFactory---->Connection--->Session--->Message
Destination + Session------------------------------------>Producer
Destination + Session------------------------------------>MessageConsumer
那么可能有人会问: ConnectionFactory和Destination 从哪儿得到?
这就和JMS提供者有关了. 如果在一个JavaEE环境中, 可以通过JNDI查找得到, 如果在一个非JavaEE环境中, 那只能通过JMS提供者提供给我们的接口得到了.
分享到:
相关推荐
【JMS基础知识详解:创建、发送、接收与读取消息】 Java消息服务(Java Message Service,简称JMS)是一个标准接口,它定义了应用程序如何创建、发送、接收和读取消息的标准API。JMS允许分布式系统中的不同组件通过...
**JMS基础知识整理** JMS(Java Message Service)是Java平台中用于企业级应用间进行异步消息传递的一种标准API。它提供了一种统一的消息接口,使得开发人员可以在不同的消息中间件之间进行选择,而无需关心底层...
1启动ActiveMQ 运行C:\apache-activemq-5.2.0\bin\activemq.bat 2测试 ActiveMQ默认使用的TCP连接端口是61616, 通过查看该端口的信息可以测试ActiveMQ是否成功启动 netstat -an|find "61616" C:\Documents and ...
一、JMS基础知识 1. 概念理解:JMS是Java平台中用于企业级消息传递的API,它定义了生产、发送、接收和消费消息的标准接口。 2. 消息模型:JMS支持两种消息模型——点对点(Point-to-Point)和发布/订阅(Publish/...
1. **JMS基础概念** - **消息**:在JMS中,消息是数据传输的基本单位,包含要传递的信息。 - **消息队列(Message Queue)**:存储消息的临时容器,确保消息被正确地发送和接收。 - **生产者(Producer)**:创建...
1. **JMS基础** - **消息模型**:JMS支持两种消息模型,点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。点对点模型中,消息由一个生产者发送到队列,一个消费者接收并处理;发布/订阅模型下,生产者...
**一、JMS基础** JMS是一个接口,定义了生产者、消费者和消息中间件之间的交互方式。它支持两种消息模型:点对点(Queue)和发布/订阅(Topic)。点对点模型中,消息由一个生产者发送到一个队列,一个消费者接收并...
### 一、JMS基础 1. **消息模型**:JMS支持两种基本的消息模型——点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。点对点模型中,消息从一个生产者发送到一个队列,由一个或多个消费者...
二、JMS基础 Java消息服务(JMS)是Java平台上的标准接口,定义了如何创建、发送、接收和读取消息。JMS提供了一种异步通信的方式,确保了不同应用程序之间通信的一致性和可靠性。JMS中的主要组件包括: 1. 消息...
### JMS基础知识 1. **消息和消息队列**:JMS中的核心概念是消息,它是一个数据结构,包含要传递的信息。消息通过消息队列进行传输,队列是一种先进先出(FIFO)的数据结构,确保消息按照顺序被消费。 2. **消息...
**JMS基础** JMS提供了一个统一的接口,允许开发者在多种消息中间件上工作,而无需关心底层实现。它支持两种消息模型:点对点(Point-to-Point, P2P)和发布/订阅(Publish/Subscribe)。在点对点模型中,消息从一...
#### 一、JMS基础概览 **1.1 何为JMS(Java Message Service)?** JMS,即Java消息服务,是Java平台中的消息中间件规范,它允许应用程序创建、发送、接收和读取消息,从而在两台或多台计算机之间进行异步通信。...
JMS 1.0.2是JMS的一个早期版本,尽管现在已经有更新的版本,但它仍然是学习JMS基础的重要资源。JMS的主要目标是提供一种异步通信方式,使得应用程序可以解耦发送和接收消息的过程,从而提高系统的可扩展性和可靠性。...
1. **JMS基础概念** - **消息模型**:JMS定义了两种基本的消息模型——点对点(Queue)和发布/订阅(Topic)。点对点模式下,消息由一个生产者发送到队列,一个消费者接收;发布/订阅模式下,多个消费者可以订阅一...
### JMS基础 1. **消息模型**:JMS支持两种主要的消息传递模型——点对点(Queue)和发布/订阅(Topic)。点对点模式中,消息从一个生产者发送到一个队列,然后由一个消费者接收。发布/订阅模式下,消息由发布者...
6. **JMS基础**: JMS主要由两部分组成:消息生产者(发送消息)和消息消费者(接收消息)。消息可以是持久的,这意味着即使生产者和消费者不同时在线,消息也会被存储直到被消费。另外,JMS支持同步和异步消息传递...
1. **JMS基础**:解释JMS的基本概念,如生产者(Producer)、消费者(Consumer)、消息队列(Queue)和主题(Topic)。JMS提供两种消息模型:点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。 2. **...
1. **JMS基础** - **消息模型**:JMS基于发布/订阅和点对点两种消息模式,提供了可靠的消息传递机制,确保消息的顺序性和完整性。 - **消息对象**:JMS中的主要对象包括Message、ConnectionFactory、Destination和...
1. **JMS基础**:JMS提供两种主要的消息模型——点对点(Queue)和发布/订阅(Topic)。Queue模式中,每个消息仅由一个消费者接收,而Topic模式下,多个订阅者可以接收到同一条消息。这两个模型分别适用于不同类型的...