`
- 浏览:
575984 次
- 性别:
- 来自:
广州
-
3.1 JMS简介
Java Message Service 规范 1.1 声称:JMS 是一组接口和相关语义,它定义了 JMS 客户如何访问企业消息产品的功能。
在 JMS 之前,每一家 MOM 厂商都用专有 API 为应用程序提供对其产品的访问,通常可用于许多种语言,其中包括 Java 语言。JMS 通过 MOM 产品为 Java 程序提供了一个发送和接收消息的标准的、便利的方法。用 JMS 编写的程序可以在任何实现 JMS 标准的 MOM 上运行。
JMS 可移植性的关键在于:JMS API 是由 Sun 作为一组接口而提供的。提供了 JMS 功能的产品是通过提供一个实现这些接口的提供者来做到这一点的。开发人员可以通过定义一组消息和一组交换这些消息的客户机应用程序建立 JMS 应用程序。
JMS1.0版本于1998年推出,最新的版本是2002发布的JMS 1.1规范。JMS支持消息中间件的两种传递模式:点到点模式和发布-订阅模式。在JMS 1.1以前的版本中,每一种都有自己的特定于该模式的一组客户机接口。JMS1.1版本提供了单一的一组接口,它允许客户机可以在两个模式中发送和接收消 息。这些“模式无关的接口”保留了每一个模式的语义和行为,是实现 JMS 客户机的最好选择。
统一模式的好处是:
1) 使得用于客户机的编程更简单。
2) 队列和主题的操作可以是同一事务的一部分。
3) 为JMS提供者提供了优化其实现的机会。
3.2 JMS体系结构
3.2.1 JMS接口描述
JMS 支持两种消息类型PTP 和Pub/Sub,分别称作:PTP Domain 和Pub/Sub Domain,这两种接口都继承统一的JMS Parent 接口,JMS 主要接口如下所示:
JMS Parent | PTP Domain | Pub/Sub Domain |
ConnectionFactory | QueueConnectionFactory | TopicConnectionFactory |
Connection | QueueConnection | TopicConnection |
Destination | Queue | Topic |
Session | QueueSession | TopicSession |
MessageProducer | QueueSender | TopicPublisher |
MessageConsumer | QueueReceiver | TopicSubscriber |
以下是对这些接口的简单描述:
ConnectionFactory:连接工厂,JMS 用它创建连接
Connection:JMS 客户端到JMS Provider 的连接
Destination:消息的目的地
Session:一个发送或接收消息的线程
MessageProducer: 由Session 对象创建的用来发送消息的对象
MessageConsumer: 由Session 对象创建的用来接收消息的对象
3.2.2 JMS消息模型
JMS 消息由以下几部分组成:消息头,属性,消息体。[4]
消息头(header):JMS消息头包含了许多字段,它们是消息发送后由JMS提供者或消息发送者产生,用来表示消息、设置优先权和失效时间等等,并且为消息确定路由。
属性(property):由消息发送者产生,用来添加删除消息头以外的附加信息。
消息体(body):由消息发送者产生,JMS中定义了5种消息体:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。
3.3 JMS编程实践
广义上说,一个JMS应用是几个JMS 客户端交换消息,开发JMS客户端应用由以下几步构成:[2]
1) 用JNDI 得到ConnectionFactory对象;
2) 用JNDI 得到目标队列或主题对象,即Destination对象;
3) 用ConnectionFactory创建Connection 对象;
4) 用Connection对象创建一个或多个JMS Session;
5) 用Session 和Destination 创建MessageProducer和MessageConsumer;
6) 通知Connection 开始传递消息。
原文地址
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
消息中间件和Java消息服务(JMS)是企业级应用集成中的关键组件,它们在分布式系统中起到数据传输和解耦的重要作用。本压缩包文件“消息中间件和JMS消息服务.rar”可能包含了关于这两个主题的详细资料,旨在帮助读者...
### 消息中间件与JMS消息服务详解 #### 一、引言 随着分布式系统的规模和复杂度不断增加,传统的远程过程调用(RPC)中间件技术如CORBA、DCOM、RMI等逐渐暴露出局限性。这些技术通常采用同步通信方式,这导致客户和...
消息中间件原理及JMS简介,是IT领域中关于企业级软件集成的重要概念。中间件作为连接不同系统和应用的桥梁,它在分布式系统中扮演着至关重要的角色。本文主要探讨了消息中间件的原理,以及Java消息服务(JMS)这一...
【消息中间件和JMS原理】是分布式系统中重要的组件,它们主要解决了传统RPC(Remote Procedure Call)中间件存在的性能、健壮性和可扩展性的不足。RPC中间件如CORBA、DCOM、RMI,虽然方便了跨网络的函数调用,但其...
消息中间件和JMS消息服务在IT行业中扮演着至关重要的角色,尤其是在构建大型分布式系统时。传统的RPC中间件如CORBA、DCOM和RMI虽然广泛应用,但它们在处理复杂性和同步通信方面存在局限。为了解决这些问题,面向消息...
### 消息中间件与JMS详解 #### 摘要 随着企业信息化建设的深入,数据集成和系统整合的需求日益增长。为了更好地满足这些需求,消息中间件作为一种基于异步处理模型的技术,逐渐受到广泛关注。不同于传统的RPC(远程...
它的设计目的是为了定义一套标准接口,让Java应用程序能够与消息中间件进行交互,类似于JDBC在数据库访问方面的角色。值得注意的是,JMS本身并不实现消息服务,而是由具体的供应商(如ActiveMQ、IBM MQ等)来提供...
消息中间件(Middleware)是分布式系统架构中的关键组件之一,它是一种软件基础设施,专注于在分布式系统之间发送和接收消息。消息中间件(MOM,Message-oriented middleware)可以提供高效可靠的消息传递机制,实现...
《基于JMS的消息中间件的实现》这篇论文深入探讨了如何在JMX(Java Management Extensions)分布管理框架下设计和实现一个JMS(Java Message Service)消息中间件。本文将详细解析这一主题,旨在理解其核心概念、...
**ActiveMQ**是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,为应用程序提供了一个中间件,允许应用程序之间进行异步的消息通信。ActiveMQ支持多种协议,如OpenWire、AMQP、STOMP、MQTT等,适用于多种...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循Java消息服务(JMS)规范,为分布式系统提供高效、可靠的消息传递。本教程通过视频形式深入讲解了ActiveMQ的使用和JMS规范的相关知识。 Java消息服务...
1. ActiveMQ:开源的Java消息服务(JMS)提供商,支持多种协议,可运行在各种操作系统上。 2. RabbitMQ:基于AMQP协议,广泛应用于各种语言和平台,具有高可用性和可扩展性。 3. Kafka:由LinkedIn开发,现在是...
Java消息中间件JMS,ActiveMQ
《基于JMX框架的JMS服务器的设计和实现》是一篇探讨如何利用JMX(Java Management Extensions)技术构建符合JMS(Java Message Service)规范的消息中间件的硕士研究生毕业论文。该论文作者为陈冬,导师为周华研究员...
分布式消息中间件是现代软件架构中的重要组成部分,特别是在微服务和大数据处理场景中,它们扮演着数据通信的关键角色。本书《分布式消息中间件实践_倪炜(著)》深入探讨了四种主流的消息队列(Message Queue,MQ)...
内容为基于JMS的消息中间件的研究与实现,格式为CAJ,页数为54
Java Message Service(JMS)是Sun Microsystems提出的一种规范,用于统一不同的消息传递中间件(Message-Oriented Middleware, MOM)系统的接口。JMS为开发者提供了一个与特定平台无关的API,使得开发人员能够更...
内容为JMS消息中间件在数据集成系统中的研究与应用,格式为CAJ,页数为为54
### TongLINK/Q 消息中间件相关知识点 #### 一、产品概述 TongLINK/Q 是由北京东方通科技发展有限责任公司开发的一款消息中间件,主要用于构建高效、可靠的分布式应用程序。该中间件提供了多种消息传递模式,包括点...
Java实现的基于JMS(Java Message Service)协议的消息队列中间件是一种用于应用程序间异步通信的重要技术。消息队列允许应用程序将消息发送到队列而不必等待接收方的响应,提高了系统的可扩展性和容错性。JMS是Java...