消息驱动Bean:
概念:
消息驱动bean是一种通过消息方式为外界提供服务的组件。
作用:
方法调用(不论本地还是远程)都是同步的,调用者要一直等待,直到服务器返回。
消息驱动Bean则在客户(消息发送者)和服务器(消息接收者)之前提供了一种异常通信。
mdb和它的使用者之间是一种松散耦合的关系:由于mdb组件在使用的过程中,其客户并不拥有mdb组件的远程引用,而是直接将消息发送到特定的队列中,因而用户的调用并不强求mdb组件的运行,在mdb组件没有运行的情况下,客户发送的请求数据会临时保存到消息队列中,当mdb组件加载后,消息队列中的调用消息才能得到处理。
java ee规范并没有规定mdb将处理结果返回给消息调用者的方式,但是通常情况下mdb组件是将处理玩的结果以消息方式发送到特定结果队列中,如果客户程序没有运行,结果会临时存放在消息队列中,直到客户程序启动,结果队列中的消息才能得到处理。
实现方式:
消息发送Bean分为消息生产者和消息消费者。
消息传递有两种类型:主题和队列。
队列:一对一(点对点)
主题:一对多(发布/订购)
每个Bean池中只有一个bean得到主题消息的一个副本。