JMS的两种编程模型

         JMS消息机制主要分为两种模型:PTP模型和Pub/Sub模型。

        PTP模型:(Point  to Point 对点模型) 每一个消息传递给一个消息消费者,保证消息传递给消息消费者,且消息不会同时被多个消费者接收。如果消息消费者暂时不在连接范围内,JMS会自动保证消息不会丢失,直到消息消费者进入连接,消息将自动送达。因此,JMS需要将消息保存到永久性介质上,例如数据库或者文件。

        Pub-Sub模型:(publish-subscription 发布者订阅者模型)每个主题可以拥有多个订阅者。JMS系统负责将消息的副本传给该主题的每个订阅者。

        如果希望每一条消息都能够被处理,那么应该使用PTP消息模型。如果并不要求消息都必须被消息消费者接收到的情况下,可使用pub-sub消息模型。Pub-Sub模型可以在一对多的消息广播时使用。

        PTP和Pub-Sub编程模型示意图:

       

        在JMS1.1版本中,为两种消息模型提供了统一的编程接口,即处理PTP消息模型的程序代码与处理Pub-Sub消息模型的程序代码差异不是很大,JMS客户端代码直接使用JMS1.1提供的API编程即可,至于底层究竟是使用哪种编程模型,客户端并不关心,也几乎没有任何区别。

        JMS统一编程模型:

       

      JMS1.1 API说明:

        ConnectionFactory:连接工厂,JMS客户端使用JNDI查找、定位连接工厂

        Connection:JMS连接,由连接工厂创建。表示客户机与服务器之间的活动连接

        Session:JMS会话,由连接工厂创建。表示客户机与JMS服务器之间的通信状态

        Queue:JMS消息目的地,消息生产者发送消息的目的地,消息消费者获取消息的消息源

        MessageProducer:消息生产者,负责创建、发送消息

        MessageConsumer:消息消费者,负责接收并读取消息

     消息生产者发送消息:

      1. 通过JNDI查找来获取ConnectionFactory

      2. 通过ConnectionFactory创建Connection

      3. 通过Connection创建Session

      4. 通过Session创建MessageProducer

      5. 通过Session创建空的JMS消息

      6. JMS消息填充消息内容

      7. 通过JNDI查找获取JMS消息的目的地

      8. MessageProducer发送消息

      9. 关闭JMS资源

      这些是有JMS API提供,这几步的实现在下篇的MDB实例中会有代码。

         

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值