Activemq研究了一段时间,但是我发现一个问题,有关MQ心跳的问题,当客户端也就是消费者断开的时候(出现异常,或者down掉,或者别的什么原 因),mq有时候是否不知道它已经掉线了。再控制台仍然能看到其在线。mq本身是通过心跳来管理的。但是有时候不起作用,这个参数 MaxInactivityDuration参数应该设置多少合适,我测试过,设置太长会出现这种问题,默认是30s
在使用 selenium的时候也出现同样的问题。
场景
消费者down掉,在心跳内(比如30s)然后再重连,服务端任务消费者又恢复了。所有出现这种情况
mq:锁掉了前一个down掉消费者的队列,默认1000条。限制2个消费者。
selenium:前面一个请求处理没完成,down掉,在心跳内提交请求,服务器认为客户款又复活,导致请求一直在等待,超出系统超时时间位置。