java - JMS 主题队列大小始终为 0

标签 java jms activemq geronimo

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

为什么主题的“队列大小”总是显示0?

最佳答案

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

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

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

另请参阅Basic JMS API concepts由甲骨文公司提供。

描述的是理想情况,这里不考虑持久主题和临时队列。

关于java - JMS 主题队列大小始终为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13161807/

相关文章:

java - 最好的结构转换方法

java - 如何将xml文件和xml字符串发送到jms队列?

java - 为 JMS 发布者/消费者设置 clientID 的目的是什么?

activemq - 如何使用 NMS 和 C# 识别 ActiveMQ 断开连接

java - 在二叉树中寻找同构性质的算法

java - 使用斯坦福解析器解析凌乱的文本

java - 如何在 Java 中的嵌套循环内部创建迭代器?

java - 如何使用 Mockito 注入(inject) JMS 依赖项

java - JmsTemplate - 定义每个队列的并发性?

java - 在 Active MQ 上接收 Weblogic 队列 JMS 消息