文档章节

JMS API

柳哥
 柳哥
发布于 2014/03/29 11:52
字数 805
阅读 370
收藏 6
JMS

JMS是Sun公司通过JSR-914项目创建的一种企业消息传送API。JMS自身并不是一种消息传送系统,它是消息传送客户端和消息传送系统通信时所需接口和类的一个抽象。与JDBC抽象访问关系数据库、JNDI抽象访问命名和目录服务的方式一样,JMS抽象可以访问消息提供者。使用JMS,应用程序的消息传送客户端可以实现跨消息服务器产品的移植。

JMS最初的目标只是提供一个Java API,用于企业消息传送系统的连接。然而,这个目标很快就变得更加宏大:支持消息传送机制,使其成为一流的Java 分布式计算范例,并且可以和CORBA及企业级JavaBean(EJB)等基于RPC的系统相提并论。

JMS API可以分为3个主要部分:公共API点对点API发布/订阅API在JMS1.1中,公共API可被用于向一个队列或主题发送消息,或从其中接收消息。点对点API专门用于使用队列的消息传送,而发布/订阅API则专门用于使用主题的消息传送。

JMS公共API

在JMS公共API内部,和发送与接收JMS消息有关的JMS API接口主要有7个:

  • ConnectionFactory

  • Destination

  • Connection

  • Session

  • Message

  • MessageProducer

  • MessageConsumer

在这些公共接口中,ConnectionFactoryDestination必须使用JNDI(遵照JMS规范要求)从提供者处获得。其它接口则可以通过工厂方法在不同的API接口中创建。举例来说,一旦有了一个ConnectionFactory,就可以创建一个Connection。一旦有了一个Connection,就可以创建一个Session。而一旦有了一个Session,就可以创建一个Message、MessageProducer和MessageConsumer。这7个主要的JMS公共API接口之间的关系,如图:

点对点API

点对点消息传送模型API特指JMS API之内基于队列的接口。下面是用于向一个队列发送和从一个队列接收消息的接口:

  • QueueConnectionFactory

  • Queue

  • QueueConnection

  • QueueSession

  • Message

  • QueueSender

  • QueueReceiver

与JMS公共API一样,QueueConnectionFactoryQueue对象必须通过JNDI从JMS提供者处获得(按照JMS规范的要求)。请注意,大多数接口名称仅仅是在公共API接口名称之前添加Queue一词而已。不同之处在于,这里称为Queue的Destination接口,而MessageProducer和MessageConsumer接口则分别称为QueueSender和QueueReceiver。一般来说,使用点对点消息传送模型的应用程序将使用基于队列的API,而不是使用公共API 。 基于队列的JMS API接口之间的关系如图:

发布/订阅API

由于基于主题的JMS API类似于基于队列的API,因此在大多数情况下,Queue这个词会由Topic取代。发布/订阅消息传送模型内部使用的接口如下:

  • TopicConnectionFactory

  • Topic

  • TopicConnection

  • TopicSession

  • Message

  • TopicPublisher

  • TopicSubscriber

请注意,除了TopicPublisher和TopicSubscriber不同以外,发布/订阅模型中的接口和p2p模型中的那些接口名称基本类似。发布/订阅模型API的关系图如下:

© 著作权归作者所有

下一篇: 消息传送模型
柳哥
粉丝 207
博文 405
码字总数 347782
作品 0
杭州
技术主管
私信 提问
Servlet基础

Servlet简介:Servlet是sun公司提供的一门用于开发动态web资源的技术,sun公司在API中提供了一个Servlet接口,用户若想完成一个动态web资源,需要完成以下两个步骤: ----1、编写一个Java类,...

晨曦之光
2012/05/16
350
0
Tomcat 容器与servlet的交互原理

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器...

watermelon11
02/25
141
0
JAIN-SIP

JAIN SIP : Java API for Integrated Networks SIP ,JSR32定义了其规范。PSTN、Wireless、Internet使用的都是JSR32。 (1)用途: JAIN SIP 可被用于以下几个方面:①用于J2SE平台,开发独...

匿名
2010/05/31
10.3K
6
web 基础巩固——JSP基础

本文按照官网文档总结,但是有可能会理解错误,学习时尽量和其他网站进行对比,同时也欢迎指出错误,好让我及时改正 什么是JSP页面? JSP页面是一个文本文档,包含两种类型的文本:静态数据,...

SXJR
2018/11/26
0
0
tomcat 5.5 部署项目报错 关于Filter的错误。。

我在tomcat7.0部署没不报错,但是再tomcat5.5就会报错。。 listener.ContextListener UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN UrlRewriteFilte......

庄泽锐
2014/03/06
1K
5

没有更多内容

加载失败,请刷新页面

加载更多

Docker下使用disconf:细说demo开发

Docker下的disconf实战全文链接 《Docker搭建disconf环境,三部曲之一:极速搭建disconf》; 《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》; 《Docker搭建disconf环境,...

程序员欣宸
32分钟前
6
0
centos7配置nfs共享存储服务

nfs 是一种网络文件系统,需要依赖rpc进行过程调度 注意nfs只验证id,验证用户名,并且只能在类unix os上进行文件共享服务,由于它的脆弱的验证机制,所以不适宜在internet上工作,在内网使用...

老孟的Linux私房菜
35分钟前
8
0
【F5小常识】F5的 Web 应用防火墙 (WAF)有什么优势?

     现如今传统防火墙已无法满足企业安全需求,网络攻击大多发生在应用层和网络层故障,且呈上升趋势,传统的防火墙存在着很大的不足之处,包括无法检测加密的Web流量、无法扩展深度检测...

梅丽莎好
47分钟前
4
0
整合到 Mockito 2

为了能够持续改进 Mockito 和在未来提升测试体验,我们希望你能够升级到 Mockito 2.10!Mockito 按照语义化版本(semantic versioning)的方式对版本进行编排,并且只在主版本升级的时候包含...

honeymoose
47分钟前
4
0
spring boot actuator

actuator 是监控系统健康的工具,引入 spring-boot-starter-actuator会暴露一些endpoint. 可通过如下配置来配置这些endpoint的基本配置: 可通过http:${url}:28081/management/actuator/*来访...

ZH-JSON
53分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部