JMS的基本概念
Posted zengzil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMS的基本概念相关的知识,希望对你有一定的参考价值。
1. JMS是什么?
JMS (Java Message Service) 是Java消息服务,是Java EE中的一个技术。
2. JMS规范
JMS定义了Java中访问消息中间件的接口,并没有给予实现。实现JMS接口的消息中间件称为 Java Provider。例如:ActiveMQ.
3. JMS Provider:实现了JMS接口和规范的消息中间件。
4. JMS message:JMS的消息。JMS消息有三部分组成:
- 消息头:每个消息头字段都有getter和setter方法。
- 消息属性:如果需要除消息头字段外的值,那么可以使用消息属性。
- 消息体:封装具体的消息数据。
5. JMS producer:消息生产者,创建和发送JMS消息的客户端应用。
6. JMS consumer:消息消费者,接收和处理JMS消息的客户端应用。
消息的消费可以采取以下两种方法之一:
- 同步消息:通过调用消费者的receive方法从目的地中显示提取消息,receive方法一直阻塞到消息到达。
- 异步消息:客户可以为消费者注册一个消息监听器,以定义消息到达时的动作。
7. JMS domains:消息传递域,JMS规范了两种消息传递域:点对点(point – to point,简称PTP)消息传递域和发布/订阅消息传递域(publish/subscribe,简称pub/sub)。
7.1点对点消息传递域的特点如下:
1) 每个消息只能有一个消费者。
2) 消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发送消息的时候是否处于正常运行状态,它都可以提取到消息。
7.2.发布/订阅消息传递域的特点如下:
1) 每个消息可以有多个消费者。
2) 消息生产者和消费者有时间上的相关性。订阅主题的消费者只能消费自它订阅之后发布的消息。JMS规范允许客户创建持久订阅,这在一定程度上放松了时间上的相关性。持久订阅允许消费者消费它在未处于激活时发送的消息。
7.3.在点对点消息传递域中,目的地称为队列(Queue);在订阅/发布传递域中称为主题(topic)。
8. Connection factory:连接工厂,用于创建连接对象,连接JMS的provider。
9. JMS Connection:封装了客户与JMS提供者之间的虚拟连接
10. JMS Session:是生产和消费消息的一个单线程上下文,会话用于创建消息生产者(producer)、消息消费者(consumer)、消息(message)等。会话提供了一个事务性的上下文,在这个上下文中,一组发送和接收被组合到了一个原子操作中。
11. Destination:消息发送到的目的地
12. Acknowledge:签收
13. Transaction:实务
14. JMS client:用来发送消息的Java应用
15. Non-JMS client:使用JMS provider本地API写的应用。用来替换JMS API实现收发消息的功能,通常会提供其他一些特性。例如:CORBA、RMI等
16. Administered objects:预定义的JMS对象,通常在provider规范中有定义,提供给JMS客户端来访问。例如:ConnectionFactory和destination
12:44:34
以上是关于JMS的基本概念的主要内容,如果未能解决你的问题,请参考以下文章