带你走进EJB--JMS

19 篇文章 3 订阅

        在上篇文章中我们对EJB有了一个基本的了解,因为要继续介绍EJB的相关分类,而在分类中有一个是消息驱动Bean(MessageDriverBean),MDB是基于JMS(Java Message ServiceJava消息服务),所以在这里很有必要对JMS进行了解.

        什么是JMS?

        JMS(Java Message Service)Java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。JMS支持两种消息模型:Point-to-PointP2P)和Publish/SubscribePub/Sub),即点对点和发布订阅模型。

       P2P模型(如下图)

 

 

计算机生成了可选文字:回易OUeUe日任三回Acknowledges

 

 

         P2P模型中,有下列概念:消息队列(Queue)、发送者(Sender)、接收者(Receiver)。每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到它们被消费或超时。

         P2P模型中需要注意一下三点.

  • 每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)
  • 发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列。
  • 接收者在成功接收消息之后需向队列应答成功,如果你希望发送的每个消息都应该被成功处理的话,那么你需要P2P模型。

 

 

Pub/Sub模型(如下图)

 

 

计算机生成了可选文字:同蕊」、p.。以~~~~刁PUblishes}您蓝回OeliVe怡回。}一―尸OeliVe份日

 

          Pub/Sub模型中,有下列概念: 主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

         在此模型下需要注意的两点

  • 每个消息可以有多个消费者。
  • 发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅之后,才能消费发布者的消息,而且,为了消费消息,订阅者必须保持运行的状态。

 

消息的消费

JMS中,消息的产生和消费是异步的。对于消费来说,JMS的消费者可以通过两种方式来消费消息。

  • 同步 – 订阅者或接收者调用receive方法来接收消息,receive方法在能够接收到消息之前(或超时之前)将一直阻塞。
  • 异步 – 订阅者或接收者可以注册为一个消息监听器。当消息到达之后,系统自动调用监听器的onMessage方法。

 

 

    以上内容为JMS的基本模型,接下来我们将会研究一下JMS的编程模型来加深对JMS的理解.

 

 

 

        

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值