`

深入JMS - 1 - 基本概念(转)

    博客分类:
  • JMS
阅读更多

1.JMS基本概念

JMS(JavaMessageService)即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

那么可能有人会问:ConnectionFactory和Destination从哪儿得 到 ?

这就和JMS提供者有关了.如果在一个JavaEE环境中,可以通过JNDI查找得到,如果在一个非JavaEE环境中,那只能通过JMS提供者 提供给我们的接口得到了.

分享到:
评论

相关推荐

    jms-1.1.jar

    本文将深入探讨JMS 1.1的核心概念、主要特性以及实际应用。 一、JMS核心概念 1. 消息:在JMS中,消息是数据传输的基本单元,它封装了要传递的信息。消息可以包含文本、二进制数据或任何Java对象。 2. 消息生产者...

    PHP 调用 JMS -Stomp

    - **JMS概念**:理解主题和队列的区别,以及如何选择合适的消息模式。 - **PHP的Stomp库**:研究如何安装和使用`StompClient`或类似库。 - **消息代理**:熟悉至少一个Stomp兼容的消息代理服务器,如Apache ActiveMQ...

    深入浅出JMS-JMS介绍说明文档

    ### JMS基本概念与原理详解 #### 一、引言 Java消息服务(JMS,Java Message Service)作为Java Platform Enterprise Edition (Java EE) 的重要组成部分之一,为开发者提供了一个强大的消息中间件标准。通过这一...

    JMS--J2EE培训材料

    通过本篇文章的学习,我们不仅了解了JMS的基本结构和开发实例,还深入了解了其高级接口、编程模型以及消息读取方式等内容。掌握JMS的核心概念和技术可以帮助开发者更好地构建复杂的企业级应用,提高系统的灵活性和可...

    ActiveMQ -5.9和jms-1.1源码下载

    在阅读源码之前,建议先熟悉ActiveMQ和JMS的基本概念和用法,以便更好地理解代码逻辑。同时,配合官方文档和其他开发者的经验分享(如提供的博文链接),可以加速学习过程。对于初学者来说,逐步分析关键类和方法,...

    weblogic9-jms-applet 开发全过程和代码

    总结,开发`weblogic9-jms-applet`需要对Applet的基本原理、WebLogic 9.2的JMS配置、Web应用的发布部署以及JNI有深入的理解。在整个过程中,注意解决潜在的技术问题,以确保Applet能够高效、安全地与WebLogic的JMS...

    JMS 教程 - 消息队列、消息服务

    在深入探讨JMS(Java消息服务)之前,我们先来了解下消息服务的基本概念及其在企业级应用中的重要性。企业级消息传递(Enterprise Messaging)是一种在分布式系统中用于异步通信的技术,它允许应用程序之间通过消息...

    Laravel开发-jms-format-laravel .zip

    1. **Laravel框架基础**:首先,你需要了解Laravel的基本概念,如路由、控制器、视图、模型、数据库迁移和 seeding,以及Artisan命令行工具的使用。 2. **Laravel的依赖注入**:Laravel强大的依赖注入容器是其核心...

    jms-study.zip_jms_server jms

    通过深入研究"jms study.pdf",你将能够掌握JMS的基本用法和高级特性,为构建基于消息的分布式系统打下坚实基础。在实际项目中,结合JMS与其他技术(如Spring框架)一起使用,可以实现高效、可靠的系统通信。

    jms-appender-5.0.1.zip

    6. Java编程基础:理解类、对象、异常处理、多线程和单元测试等基本概念。 7. Maven或Gradle构建工具:用于管理依赖关系、编译、打包和部署项目。 8. 文档阅读:阅读项目提供的README文件或Javadoc,以获取使用指南...

    spring-jms-oracle-aq.rar_oracle aq_spring oracle aq_spring oracl

    首先,让我们了解Oracle AQ的基本概念。Oracle AQ是Oracle数据库的一部分,它提供了一种存储和转发消息的机制。消息队列允许异步处理,确保即使在分布式系统中也能实现高可用性和数据一致性。Oracle AQ支持多种协议...

    spring整合JMS-居于ActiveMQ实现

    在本文中,我们将深入探讨这三个关键概念,以及如何将它们有效地结合在一起。 首先,Spring是一个开源的Java应用程序框架,它提供了一种声明式、模块化的方式来管理应用程序的组件。Spring框架的核心特性之一是其对...

    ActiveMQ在JMS中的运用-深入浅出JMS

    1. **消息(Message)**:消息是JMS中的基本传输单元,包含要传递的数据。它可以是文本、对象或者二进制数据。 2. **消息队列(Queue)**:队列是FIFO(先进先出)结构,每个消息只能被一个消费者消费,确保消息的...

    JMS-infrastructure-for-Mobile-Ops

    1. **JMS基本概念** - **消息**:在JMS中,数据通过消息进行传递,它是一个独立的数据单元,包含要传输的信息。 - **生产者(Producer)**:创建并发送消息的应用。 - **消费者(Consumer)**:接收并处理消息的...

    activeMQ-JMS实例

    首先,让我们理解ActiveMQ和JMS的基本概念。 ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,允许应用程序之间进行异步通信。JMS是一种标准接口,用于Java平台上的消息传递,提供了可靠的...

    Spring JMS 消息处理-基于JNDI

    1. **JMS核心概念**:首先,博客会介绍JMS的基本概念,包括Message、MessageProducer、MessageConsumer、Queue和Topic。理解这些概念对于有效地使用Spring JMS至关重要。 2. **Spring JMS配置**:接着,作者可能...

    深入掌握 JMS(java message service)

    通过以上理论知识的学习和实战案例的实践,我们可以更加深入地理解JMS的核心概念和技术细节。JMS作为一种成熟的消息中间件技术,在现代企业级应用中扮演着至关重要的角色。掌握了JMS的基本原理和使用方法后,开发者...

Global site tag (gtag.js) - Google Analytics