`
hhhhh-kk#qq.com
  • 浏览: 58007 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JMS入门

阅读更多

1. JMS基本概念
     JMS(Java Message Service) 即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 + Session------------------------------------>MessageConsumer


    那么可能有人会问: ConnectionFactory和Destination 从哪儿得到?
    这就和JMS提供者有关了. 如果在一个JavaEE环境中, 可以通过JNDI查找得到, 如果在一个非JavaEE环境中, 那只能通过JMS提供者提供给我们的接口得到了.

分享到:
评论
1 楼 9976 2011-04-07  
讲得很清晰详细,基本理解了~

相关推荐

    JMS入门文档,JMS入门文档

    JMS入门文档通常会包含以下几个关键知识点: 1. **JMS基本概念**: - **消息**:JMS中的基本单元,它是一个数据对象,包含要传递的信息。 - **消息生产者**(Message Producer):负责创建和发送消息的组件。 - ...

    jms 入门的几个小项目

    下面我们将详细探讨JMS的基础知识、核心概念以及入门项目可能涉及的方面。 1. **JMS基本概念** - **消息**:在JMS中,数据通过消息进行传递。消息包含要传输的数据,以及描述数据的元数据。 - **消息生产者**:...

    jms入门实例

    Java消息服务(Java Message Service,简称...例如,Test文件可能包含了JMS的入门示例代码,展示了如何创建消息、设置消息代理、发送和接收消息的过程。通过学习和实践这些示例,开发者能更好地理解和掌握JMS的使用。

    WebLogic_server8.1_JMS入门.doc

    【WebLogic Server 8.1 JMS 入门】 WebLogic Server 8.1 是一款符合J2EE 1.3规范的中间件,其中包含了WebLogic JMS Server,它是基于Java Message Service (JMS) 的实现,允许Java应用程序进行可靠的消息交换。JMS...

    spring-jms入门

    Spring-JMS是Spring框架的一部分,专门用于处理Java消息服务(JMS)的集成。它提供了一个简单的API,使得开发者能够方便地在应用中使用消息传递功能。本文将深入探讨Spring-JMS的基础知识,包括它的核心概念、配置...

    JMS 入门之实例

    JMS(Java Message Service)是Java平台中用于创建和传递消息的标准API,它为应用程序提供了异步通信的能力。在本文中,我们将通过一个简单的实例来理解JMS的基础知识。 首先,JMS的核心概念包括消息提供者...

    jms入门

    **JMS(Java Message Service)入门** JMS是Java平台中用于消息传递的一个标准接口,它定义了在Java应用程序之间交换消息的API。通过JMS,开发者可以创建、发送、接收和阅读异步消息,这对于分布式系统中的解耦和...

    JMS入门Demo

    该属性值默认为false,这样JMS在进行消息监听的时候就会进行事务控制,当在接收消息时监听器执行失败时JMS就会对接收到的消息进行回滚, 对于SessionAwareMessageListener在接收到消息后发送一个返回消息时也处于...

    JMS demo 及 资料

    在"JMS入门级的蹩脚篇.ppt"这个文件中,可能包含了以下内容:JMS的基本概念解释,如何创建消息,如何设置消息队列和主题,如何编写生产者和消费者代码示例,以及如何配置和运行JMS应用程序。这些内容对于初学者理解...

    JMS完全实例(八个实例)

    理解如何创建消息对象,设置其属性,并通过Session和Destination接口进行发送和接收是JMS入门的关键。 2. **网关设置** 实例中可能涉及到的消息网关配置,如ActiveMQ,是JMS实现的核心组件。ActiveMQ是Apache软件...

    JMS-ActiveMQ入门实例

    **JMS与ActiveMQ入门实例详解** Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。...

    deegeU-jms-001:DeegeU JMS 入门教程

    deegeU-jms-001 这是一个简单的 JMS 应用程序,演示了生产者和消费者。 这是视频的示例代码 此代码是为 Java 7 编写和编译的。 获得帮助 如果您在获取源代码时遇到问题,请参阅或视频 执照 麻省理工学院: : 反馈...

    activemq与spring整合发送jms消息入门实例

    本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...

    jms开发手册pdf 帮助新手入门

    ### JMS开发手册知识点详解 #### 一、JMS与JBoss简介 - **JMS (Java Message Service)**:一种消息传递模型的标准API,用于在应用程序之间进行消息传递。 - **JBoss**:一个开放源代码的应用服务器,支持多种企业...

    点对点消息模型示例

    在JMS入门的第三部分,我们将深入探讨点对点消息传送模型的实现。文章中可能会涵盖以下内容: 1. **JMS组件**:首先,我们需要了解JMS中的关键组件,如Message Producer(消息生产者)、Message Consumer(消息消费...

    spring jms tomcat 异步消息传递入门实例

    在这个"spring jms tomcat 异步消息传递入门实例"中,我们将探讨如何在Spring框架下利用JMS和Tomcat实现异步消息传递,以提高系统性能和可扩展性。 首先,理解异步消息传递的概念至关重要。在同步通信中,发送方...

Global site tag (gtag.js) - Google Analytics