由于最近研发项目进展缓慢,故在有限的时间里学习一下JMS,在此做笔记为证。
一、JMS的基本概念
源引,在developerworks看到的一篇文章,来为JMS下个定义:
JMS
是什么?
Java MessageService
规范 1.1声称:
JMS 是一组接口和相关语义,它定义了 JMS 客户如何访问企业消息产品的功能。
在 JMS
之前,每一家 MOM
厂商都用专有 API
为应用程序提供对其产品的访问,通常可用于许多种语言,其中包括 Java
语言。JMS
通过 MOM
产品为 Java
程序提供了一个发送和接收消息的标准的、便利的方法。用 JMS
编写的程序可以在任何实现 JMS
标准的 MOM
上运行。
JMS
可移植性的关键在于:JMSAPI
是由 Sun
作为一组接口而提供的。提供了 JMS
功能的产品是通过提供一个实现这些接口的提供者来做到这一点的。
开发人员可以通过定义一组消息和一组交换这些消息的客户机应用程序建立 JMS
应用程序。
二、JMS的目标
更好地理解 JMS
有助于了解 JMS
规范的制定者设置的目标。
现在,市场上有许多企业消息产品,生产这些产品的几家公司也参与了 JMS
的开发。
现有的这些系统的能力和功能各不相同。这些制定者知道如果 JMS
结合所有现有系统的所有功能,那么它会变得过于复杂。同样,他们相信,他们也不能让 JMS
只局限于所有系统共有的那些特性。
制定者相信,让 JMS
包括实现“高级的企业应用程序”所需要的所有功能是很重要的。
JMS
规范中声明, JMS
的目标是:
-
定义一组消息公用概念和实用工具。
-
最少化程序员使用消息时必须学习的概念。
-
最大化消息应用程序的可移植性。
- 最小化实现一个提供者所需的工作量。
-
为点对点和 pub/sub域提供客户机接口。“域”是用于在前面讨论的消息模型的
JMS 术语。(注意:提供者不需要实现两个域。)
综上所述,其实JMS也是sun公司给提供的一个统一编程规范,换句话说也就是给我们提供了一组公共接口,方便我们自己进行实现。
三、JMS 1.1规范
在 JMS 1.1
以前的版本中,每一个域都有自己的特定于该域的一组客户机接口。JMS
版本 1.1
提供了单一的一组接口,它允许客户机可以在两个域中发送和接收消息。这些“域无关的接口”保留了每一个域的语义和行为,是实现 JMS
客户机的最好选择。支持特定于域的接口是为了向后兼容性,新的开发不该使用它。
统一域的好处是:
-
它展示了用于客户机编程的更简单的编程模型。
-
队列和主题的操作可以是同一事务的一部分。
-
它为 JMS
提供者提供了优化其实现的机会。
该文章中部分概念源引于
源文档 <http://www.ibm.com/developerworks/cn/education/java/j-jms/section2.html>
,如果有版权涉及,请通知,我会及早进行删除
在这一节里,我对于JMS的基本概念,做了一下解释。方便以后,自己进行理解。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
**JMS学习笔记精心总结** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它允许应用程序创建、发送、接收和读取消息,使得应用程序能够在不直接连接的情况下...
**JMS学习笔记(一)——JMS简介与ActiveMQ安装** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的标准接口。它为应用程序提供了一种标准的方式,用来创建、发送、接收和读取...
本文主要探讨的是消息中间件(Message-Oriented Middleware,简称MOM),特别是在Java消息服务(Java Message Service,JMS)的学习笔记。 JMS是Java平台上的一个标准API,用于在分布式环境中进行异步消息传递。它...
**JMS学习笔记** Java消息服务(Java Message Service,简称JMS)是Java平台中用于在分布式环境中交换异步消息的标准API。它提供了一种可靠的消息传递机制,使得应用程序可以在不互相依赖的情况下进行通信,从而...
通过阅读**jms学习笔记.docx** 和 **JMS例子.docx**,你可以深入理解JMS的使用方式,获取实践经验。而 **JMS教程.pdf** 和 **基于XML和JMS的异构数据交换集成的研究.pdf** 则提供了理论基础和高级应用场景的讲解,有...
在本篇ActiveMQ学习笔记中,我们将探讨JMS(Java Message Service)与Spring框架的集成。JMS是一种标准API,用于在分布式环境中进行异步消息传递,而Spring框架则为开发人员提供了强大的依赖注入和管理服务的能力。...
在深入探讨JAVA学习笔记之前,我们首先理解一下JAVA这一编程语言的重要性。JAVA,由Sun Microsystems公司(现已被Oracle收购)于1995年推出,是一种面向对象的、跨平台的编程语言,以其“一次编写,到处运行”的特性...
RocketMQ学习笔记 1是关于Apache RocketMQ的学习笔记,涵盖了RocketMQ的基本概念、架构、消息模型、Producer和Consumer的基本概念、JMS规范等知识点。 1. 消息模型 在RocketMQ中,消息模型是指消息的生产、存储和...
### ActiveMQ学习笔记知识点梳理 #### 一、ActiveMQ简介 **定义:** - **ActiveMQ**是由Apache出品的一款功能强大的开源消息中间件。作为消息队列(Message Queue,简称MQ)的一种,它主要用来在分布式系统之间...
### JavaEE 学习笔记概览 #### 一、JavaEE 概念及发展历程 JavaEE(Java Platform, Enterprise Edition)是Sun Microsystems公司为简化企业级应用开发而提出的一套标准化平台,它提供了构建分布式系统的基本框架和...
本学习笔记涵盖了JavaEE的核心技术,帮助学习者深入理解和掌握javaweb的各项技能。 1. **Servlet与JSP** - **Servlet**:Servlet是Java编写的服务器端程序,主要用于扩展服务器的功能。在JavaEE中,Servlet处理...
本学习笔记涵盖了J2EE的关键技术和概念,对于想要深入理解并掌握这一领域的开发者来说,是非常宝贵的学习资源。"非常非常的好"这一评价,意味着这份资料很可能详尽且实用,能够帮助学习者逐步构建起对J2EE全面的理解...
**J2EE学习笔记概述** ...提供的学习笔记和其他资源能够为初学者提供一条清晰的学习路径,通过理论学习和实践操作,逐步成长为一名熟练的J2EE开发者。记得,持续学习和不断实践是成为IT专业人员的关键。
RocketMQ学习笔记主要涵盖了消息队列(MQ)的相关知识,内容深入浅出,不仅包含理论知识,还融入了实战案例和源码分析,...对于希望深入学习和使用RocketMQ的IT专业人士来说,这样的学习笔记无疑是一份宝贵的学习资料。
本篇文章将深入探讨“java后端学习笔记”中的关键知识点,包括消息队列(Message Queuing)服务如ActiveMQ和RabbitMQ、工作流引擎Activity、容器化技术Docker、分布式服务框架Dubbo、网络库Netty、RPC(Remote ...