消息传送模型

JMS支持两类消息传送模型:点对点模型(p2p)和发布/订阅模型(Pub/Sub)。发布/订阅模型设计用于一对多(one-to-many)消息广播,而点对点模型则设计用于一对一(one-to-one)消息传送。如图:

101023_rxHw_168814.jpg

从JMS的视角来看,消息传送客户端称为JMS客户端(JMS client),而消息传送系统则称为JMS提供者(JMS provider)。一个JMS应用程序是由多个JMS客户端和(通常是)一个JMS提供者所组成的业务系统。此外,生产消息的JMS客户端称为消息生产者(message producer),而接收消息的JMS客户端则称为消息消费者(message consumer)。一个JMS客户端可以既是消息生产者,又是消息消费者。当我们使用术语消费者(consumer)或生产者(producer)时,我们分别是指消费或生产消息的一个JMS客户端。

点对点模型

点对点消息传送模型允许JMS客户端通过队列(queue)这个虚拟通道来同步和异步发送、接收消息。在点对点模型中,消息生产者称为发送者(Sender)而消息消费者则称为接收者(receiver)。传统上,点对点模型是一个基于拉取(Pull)或者基于轮询(polling)的消息传送模型,这种模型从队列中请求消息,而不是自动地将消息推送到客户端。点对点消息传送模型的一个突出特点就是:发送到队列的消息被一个而且仅仅一个接收者所接收,即使可能有多个接收者在一个队列中侦听同一消息时,也是如此。

点对点消息传送模型既支持异步“即发即弃”消息传送方式,又支持同步请求/应答消息传送方式。点对点消息传送模型比发布/订阅传送模型具有更强的耦合性,发送者通常会知道消息将被如何使用,而且也会知道谁将接收该消息。另外,点对点模型支持负载均衡,它允许许多个接收者侦听同一队列,并以此来分配负载。

发布/订阅模型

在发布/订阅消息传送模型中,消息会被发布到一个名为主题(topic)的虚拟通道中。消息生产者称为发布者(publisher),而消息消费者则称为订阅者(subseriber)。与点对点模型不同,使用发布/订阅模型发布到一个主题的消息,能够由多个订阅者所接收。有时候,也称这项技术为广播(broadcasting)消息。每个订阅者都会接收到每条消息的一个副本。总的来说,发布/订阅消息传送模型基本上是一个基于推送(push)的模型,其中消息自动地向消费者广播,它们无须请求或轮询主题来获取新消息。

发布/订阅模型的去耦能力要比p2p模型更强,消息发布者通常不会意识到有多少订阅者或那些订阅者如何处理这些消息。

转载于:https://my.oschina.net/fhd/blog/214044

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值