队列和主题

Anonim

队列与主题

Java消息服务,或简称为JMS,是向两个或多个客户端发送消息的媒介。它允许分布式应用程序的不同机制之间的联系。这种面向消息的中间件有两个模型,即点对点模型和发布或订阅模型。这两个模型也有其他名称。点对点模型也称为队列模型,发布者或订阅者模型也简称为主题模型。

队列或点对点模型通过让发送方将消息放入队列来工作,接收方将能够从队列中读取消息。但是,发布者或订阅者或主题模型通过发布有关特定主题的消息并让订阅者阅读消息来传播消息。

这两个模型之间存在许多差异,我们将简称为“队列”和“主题”。在队列中,发送者知道消息的去向。有一个特定的发送者和一个特定的接收者,并且有意被承认。另一方面,在主题中,您只有一个发布者和一个或多个订阅者。发布者和订阅者的身份都是匿名的。

两者之间的另一个主要区别是收件人数量。在队列中,您只有一个接收者或消费者;与主题不同,您可以将您的信息传播给许多订阅者。此外,在主题中,发布者必须持续活动以使订阅者接收消息。否则将重新分配该消息。在队列中,您不必担心计时,因为发件人可以随时发送消息。接收器也是如此;他或她也可以随时随地阅读。在队列中,您还可以放心,作为发件人,您已成功发送了您的消息,因为您将收到接收者的通知,但对于主题系统则不然。甚至存在没有任何订户的风险。

摘要:

1.点对点或队列模型由发送方对接收机设置起作用。另一方面,发布者/订阅者或主题模型通过公告设置工作。

2.在队列模型中,确认接收者的身份,通常是发送者。在主题模型中,订户和发布者的身份都是匿名的。

3.Queue模型只允许一个接收者;另一方面,主题可以有多个收件人。

4.在队列模型中,发送方和接收方不必同时处于活动状态。在主题模型中,时间安排非常重要。

5.在队列模型中,发送者将在消息到达接收者时收到通知。另一方面,主题模型不会通知您,甚至存在您没有订阅者的风险。