Activemq STOMP : detecting and clearing dead nondurable subscribers

标签 activemq stomp

我有以下情况影响我们的 ActiveMQ 5.8 代理。

Windows 工作站上的几个 Perl 脚本使用 STOMP 连接到 ActiveMQ 并订阅(非持久)各种主题。工作站电源出现故障。

使用 Web 控制台,根据显示的消费者数量和正在使用的高温消息存储,我可以看到 ActiveMQ 仍然认为这些订阅者已连接。我已经设置了无生产者流量控制并设置了内存限制,所以我相信我看到的是 ActiveMQ 正在将所有消息假脱机到磁盘,因为它认为长期死亡的订阅者仍然连接并且可能最终会读取它们。 30 天过去了,ActiveMQ 仍然没有意识到这些订阅者不再连接。

是否有一种方法可以配置 ActiveMQ,以便最终自动清除像这样的“不死”订阅者连接?

最佳答案

虽然之前的回答基本正确,但ActiveMQ确实提供了Broker上STOMP传输到心跳连接的解决方案,即使客户端连接的是STOMP v1.0。我 blogged关于这个,前段时间ActiveMQ v5.6发布的时候,见STOMP 1.0默认心跳配置部分。另一种选择是为传输设置 tcp keepAlive,并调整您的操作系统以使用较短的默认检查间隔,默认值通常约为两小时。

关于Activemq STOMP : detecting and clearing dead nondurable subscribers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824909/

相关文章:

rabbitmq - 如何在Qpid JMS中为ActiveMQ像RabbitMQ一样创建主题交换?

mysql - 在 JBoss 5.1 的 MDB (ActiveMQ) 中捕获 MySQL 死锁

activeMQ amqp错误

javascript - IE8 表示 'Object doesn' t 支持 Date.now() 的此属性或方法

java - 如何以编程方式从客户端获取 ActiveMQ 代理版本

c# - 为什么 Apache ActiveMQ 不适合 .NET 开发人员?

c# - NACK apache nms 中的消息

node.js - 如何检查stopmit node.js中的AMQ队列中是否没有消息可消费

spring-boot - @SubscribeMapping 与 @MessageMapping

spring-boot - Stomp 套接字在具有 2 个实例的 tomcat 集群中不工作。我正在使用 simpMessagingTemplate 广播消息。这不是聊天应用程序