【进阶EJB】深入探讨三种Bean(三)——MessageDriven Bean

5 篇文章 1 订阅

    通过前两篇文文章

   【进阶EJB】深入探讨三种Bean(一)——Session Bean 

   【进阶EJB】深入探讨三种Bean(二)——Entity Bean

   已经介绍了前两种Bean,今天我们继续介绍第三种Bean——MessageDriven Bean。


    要说MessageDriven Bean前就先要介绍一下JMS(Java Message Service),JMS是Java消息服务,它是一个与具体平台无关的API(Application Program Interface 应用程序接口),是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换、并且通过提供标准的产生、发送、接受消息的接口简化企业应用的开发。而MessageDriven Bean就是基于JMS消息,只能接受客户端发送的JMS消息然后处理。知道了这些我们继续了解MessageDriven Bean。


    MessageDriven Bean即消息驱动Bean,它是设计用来专门处理基于消息请求的组件。消息驱动Bean具有处理大量并发消息的能力,并且如果一个消息执行很长时间而执行结果无需向用户实时反馈时,也非常适合使用消息驱动Bean,它能够避免客户端长时间等待一个方法调用直到返回结果。比如订单成功后向用户发送一封电子邮件或短信等。


    JMS有两种工作模型:P2P点对点模型和Pub/Sub发布订阅模型。

    P2P(Point-to-Point)点对点模型,什么是P2P模型?P2P模型中有发送者、接收者和消息队列。每个消息只有一个消费者,即消息一旦被消费,消息就不会再在消息队列中;消息的发送者和接收者不存在时间上的依赖性,也就是说当发送者发送了消息之后,不论接收者有没有正在运行,都不影响消息被发送到队列中;接收者在成功接收了消息之后,需要给队列应答成功;每个消息都被发送到一个特定的消息队列中,接收者从消息队列中获取消息,消息队列保留着消息,直到它们被消费或超时。

    什么时候适合用P2P?就是如果你希望发送的每一个消息都能够被成功处理的话,那么就需要应用P2P模型了。


   Pub/Sub(Publish/Subscribe)发布/订阅模型,什么是Pub/Sub发布/订阅模型?Pub/Sub模型中有主题、发布者、订阅者。客户端发送消息到主题,多个发布者将消息发送到主题,系统将这些消息传递给多个订阅者。其中每个消息可以有多个消费者;发布者和订阅者之间有时间上的依赖性,针对某个主题的订阅者,他们必须建立一个订阅之后才能消费发布者的消息,并且为了消费消息,订阅者必须保持运行的状态。

    什么时候适合用Pub/Sub?如果你希望发送的消息可以不被做任何处理,或者被一个消费者处理,或者可以被多个消费者处理的话,可以采用Pub/Sub模型。


   

    今天这篇文章就介绍到这里,通过前几篇关于EJB的文章,我们对EJB有了一个大致的认识,在接下来的ITOO项目中我们会使用EJB,所以期待在实践中对EJB有一个更为全面的认识。有关EJB的文章先暂时介绍到这里,在项目中对EJB有新的认识我会及时更新在博客中。接下来我会写一些关于SprigMVC的文章,敬请期待吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值