zoukankan      html  css  js  c++  java
  • J2EE技术(三)——JMS

     一、JMS基本思想

    JMS(Java Message Service)即java消息服务,提供了一组标准的java API,用于企业级的消息处理。通过JMS可以在java程序之间发送和接受消息以达到交换数据的目的。

    一个JMS应用由以下几部分组成:

    1、       消息发送者(消息生产者):消息发送者是指消息的创建者和发送者,是消息的发源地。

    2、       JMS提供者:是指实现JMS API接口的消息系统,是消息的中转站。JMS定义了Java中访问消息中间件的接口,但JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMS提供者(JMS Provider)。WebLogic Server内嵌了消息中间件的功能,所以WebLogic Server就充当了JMS提供者的角色。

    3、       消息接受者(消息消费者):消息接受者是指接受消息的应用程序,是消息的最终的目的地。

    4、       管理对象:管理对象是预定义的JMS对象,客户端使用这些预定义的对象进行通信,例如JMS连接工厂。

    二、JMS通信机制

    1、点到点通信(PTP)模式

    JMS把每一个消息传递给一个消息消费者,并只有唯一的一个,即一个消息生产者对应一个消息消费者。

    2、发布/订阅(Publish/Subscribe,Pub/Sub)模式

    一个消息生产者对应多个消息消费者。

     

    可以在一个应用中同时使用这两种消息传递方式。

    三、JMS概念的一些简洁定义

    连接工厂(ConnectionFactory):客户端用来创建连接的管理对象。

    连接(Connection):代表一个与JMS提供者的活动连接。

    目的(Destination):标识消息的接收方式。分为队列(Queue)和主题(Topic)两种。

    会话(Session):接收和发送消息的会话线程。

    消息生产者(MessageProducer):会话使用它把消息发送到目的地。

    消息消费者(MessageConsumer):会话使用它从目的地接受消息生产者发送的消息。

    四、JMS消息发送及接收的过程:
    1、发送消息过程:

    (1)、使用JNDI查询管理对象ConnectionFactory和Destination。

    (2)、使用管理对象ConnectionFactory建立连接Connection。

    (3)、使用连接Connection建立会话Session。

    (4)、使用会话Session和管理对象Destination创建消息生产者MessageProducer。

    (5)、使用消息生产者MessageProducer发送消息。

    2、接受消息的客户端使用JMS的过程:

    (1)、使用JNDI查询管理对象ConnectionFactory和Destination。

    (2)、使用管理对象ConnectionFactory建立连接Connection。

    (3)、使用连接Connection建立会话Session。

    (4)、使用会话Session和管理对象Destination创建消息消费者MessageConsumer。

    (5)、使用消息消费者MessageConsumer接收消息。

    五、JMS消息类型

    (1)、StreamMessage:消息由串行化的Java对象组成,必须按照设置时的顺序读取对象。

    (2)、MapMessage:消息由名称/值对组成,其中名称为字符串类型,值为Java数据类型。可以使用列举顺序读取该消息的值,也可以通过名称无序地获取值。

    (3)、TextMessage:消息的主体为字符串(),这是最常用的消息类型。

    (4)、ObjectMessage:消息的主体为串行化的Java对象,可以是自己定义的串行化的Java对象。

    (5)、BytesMessage:消息的主体是二进制数据。

    Weblogic.jms.extensions.XMLMessage 是WebLogic实现的JMS提供者提供的扩展的消息类型,提供更便利的操纵XML内容的方式。

     

     

  • 相关阅读:
    安卓开发中Theme.AppCompat.Light的解决方法
    一个监听事件监听多个按钮
    onCreate中的savedInstanceState有何具体作用
    [转]Bundle对象的使用
    【转】Android详细的对话框AlertDialog.Builder使用方法
    实现按两次返回键退出应用(利用安卓按后退键引发的函数)
    [转]解决eclipse连接不到genymotion的问题
    随笔记录九 进程和计划任务任务管理
    linux引导过程和服务控制
    上机作业三 账号管理
  • 原文地址:https://www.cnblogs.com/CharmingDang/p/9663968.html
Copyright © 2011-2022 走看看