0

如果我将一堆消息发布到订阅者非常慢的主题。geronimos“JMS 资源”选项卡中的“队列大小”保持为 0。如果我使用 JMS 队列而不是主题,我可以看到大小在增长。在这两种情况下,所有消息都会被传递。

为什么主题的“Queue Size”总是显示为0?

4

1 回答 1

2

主题代表发布-订阅模型,当没有订阅者收听时,消息将消失。因此,对主题​​大小的查询始终为零。

主题可以有多个订阅者,因此可以在多个“侦听”该主题的客户端上读取消息。

另一方面,队列将保留消息,直到客户端请求下一条消息。在这里可以查询当前持有的消息量大小。一条消息只能由一个客户端接收。

另请参阅 Oracle 的基本 JMS API 概念

针对理想情况进行描述,此处不考虑持久主题以及临时队列。

于 2012-10-31T21:42:37.443 回答