JMS学习笔记(一)——JMS基础

一,JMS的基本概念

       JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。

      JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(Java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。

二,两种模式

      JMS支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。
      对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接收者读取之后,它就在这个Queue中消失了,所以一个消息只能被一个接收者消费。
      与点到点模型不同,发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个Topic中,这个Topic可以同时有多个接收者在监听,当一个消息到达这个Topic之后,所有消息接收者都会收到这个消息。
      总结:简单的讲,点到点模型和发布/订阅模型的区别就是前者是一对一,后者是一对多(点到面)。

三,几个重要的概念

      1)连接工厂,连接工厂(ConnectionFactory)是由管理员创建,并绑定到JNDI树中。客户端使用JNDI查找连接工厂,然后利用连接工厂创建一个JMS连接。
      2)JMS连接,Connection表示JMS客户端和服务器端之间的一个活动的连接,是由客户端通过调用连接工厂的方法建立的。
      3)JMS会话,Session表示JMS客户与JMS服务器之间的会话状态。JMS会话建立在JMS连接上,表示客户与服务器之间的一个会话线程,通过Session我们才可以创建一个Message
      4)JMS目的,Destination,消息发送的目的地,包括两个子接口Queue和Topic,Destination是实际的消息源。创建好一个消息之后,只需要把这个消息发送到目的地,消息的发送者就可以继续做自己的事情,而不用等待消息被处理完成。至于这个消息什么时候,会被哪个消费者消费,完全取决于消息的接受者和jms的服务器
      5)JMS生产者,MessageProducer对象由Session对象创建,消息的生产者,要发送一个消息,必须通过生产者来发送。
      6)JMS消费者,MessageConsumer对象由Session对象,用于接收消息。
      7Message:从字面上就可以看出是被发送的消息。它有下面五种类型:
            StreamMessage:Java 数据流消息,用标准流操作来顺序的填充和读取。
            MapMessage:一个Map类型的消息;名称为 string 类型,而值为 Java 的基本类型。
            TextMessage:普通字符串消息,包含一个String。
            ObjectMessage:对象消息,包含一个可序列化的Java 对象
            BytesMessage:二进制数组消息,包含一个byte[]。
           备注:其中最常用的是TextMessage和ObjectMessage。
     通过下面这个简图可以看出上面这些概念的关系。
         ConnectionFactory---->Connection--->Session--->Message
         Destination + Session------------------------------------>MessageProducer
         Destination + Session------------------------------------>MessageConsumer

四,JMS的提供者

       前面多次提到JMS提供者,因为JMS只是sun公司给我们提供的一系列接口,当我们使用JMS的时候,还是需要一个第三方的提供者,它的作用就是真正管理和实现这些Connection,Session,Topic和Queue等,这一点和jdbc很像。
     开源的提供者包括:
           Apache ActiveMQ
          JBoss 社区所研发的 HornetQ
          Joram
          Coridan的MantaRay
          The OpenJMS Group的OpenJMS
      专有的提供者包括:
          BEA的BEA WebLogic Server JMS
          TIBCO Software的EMS
          GigaSpaces Technologies的GigaSpaces
          Softwired 2006的iBus
          IONA Technologies的IONA JMS
          SeeBeyond的IQManager(2005年8月被Sun Microsystems并购)
          webMethods的JMS+ -
          my-channels的Nirvana
          Sonic Software的SonicMQ
          SwiftMQ的SwiftMQ
          IBM的WebSphere MQ

     activemq的下载地址:http://activemq.apache.org/download-archives.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值