activemq 5.5堵塞 假死问题
activemq 5.5在网络状况不好的情况下会出现假死和消息堵塞现象,谁有好的解决办法、
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
activemq 5.5在网络状况不好的情况下会出现假死和消息堵塞现象,谁有好的解决办法、
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
遇到同样问题,最后观察发现一般消费者假死一段时间后,会自动断开,实在没辙利用了ActiveMQ可以通过JMX管理所有的队列,在ActiveMQ/webpps/部署一个servlet,定时获得当前队列的消费者数量,根据数量大小判断是否有消费者连接。
SystemPropertiesConfiguration configuration = new SystemPropertiesConfiguration();
String jmxURL="service:jmx:rmi:///jndi/rmi://127.0.0.1:11099/jmxrmi";
System.setProperty("webconsole.jmx.url",jmxURL);
RemoteJMXBrokerFacade createConnector = new RemoteJMXBrokerFacade();
createConnector.setConfiguration(configuration);
QueueViewMBean queueViewMBean = createConnector.getQueue("队列名称");
//消费者数
long queueConsumerCount=queueViewMBean.getConsumerCount();
只能继续关注了,看有人碰到过类似情况没,回头利用测试环境试一试,再来讨论。
确实是:一种情况是:单起发送者,不起接受者,发送者压满128M消息,起来接受者这个时候不会取消息。第二种情况是:配置内存60mb 系统内存60mb 临时内存60mb先起接受者后期发送者,在百万数据量的情况下,很容易把第一个内存使用限制60mb达到,一旦达到这个60mb,马上假死。还有一种情况是在大数据量情况下如果内存128mb 系统内存1g 临时内存128mb,大数据量情况下系统存贮了1G的消息没有被取走,消费者挂死现象。
你是说队列满了,消费者不能取出消息?这种情况没有碰到过。你确定没有其他问题干扰吗
另外如果在发送者发送消息很快的情况下,内存配置128满了,也会出现停止不消费消息问题,这个应该是开源软件的缺陷。
你说的我知道,我认为这个是MQ缺陷导致的,在内存配置128M 系统内存配置1G的情况下,如果1G满了,会导致消费者不消费消息,假死了。你不可能排除在实际项目场景客户的环境就是不好情况。
jms服务器和你的应用服务器可以放到同一台机器上,也可以分两台放,就算分两台放也是路由器连接起来的,局域网传东西有多快你知道吧,当然不排除访问量巨大的是时候,访问量巨大也可以集群两台jms服务器,当然要先确定瓶颈在那个地方。
中国这个方面是不是用这个的很少啊?无人回答我问题。