activemq 5.5堵塞 假死问题

发布于 2021-11-23 13:57:54 字数 45 浏览 689 评论 8

activemq 5.5在网络状况不好的情况下会出现假死和消息堵塞现象,谁有好的解决办法、

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

心欲静而疯不止 2021-11-26 12:34:23

遇到同样问题,最后观察发现一般消费者假死一段时间后,会自动断开,实在没辙利用了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();

凡尘雨 2021-11-26 12:33:53

只能继续关注了,看有人碰到过类似情况没,回头利用测试环境试一试,再来讨论。

女中豪杰 2021-11-26 12:32:45

确实是:一种情况是:单起发送者,不起接受者,发送者压满128M消息,起来接受者这个时候不会取消息。第二种情况是:配置内存60mb 系统内存60mb 临时内存60mb先起接受者后期发送者,在百万数据量的情况下,很容易把第一个内存使用限制60mb达到,一旦达到这个60mb,马上假死。还有一种情况是在大数据量情况下如果内存128mb 系统内存1g 临时内存128mb,大数据量情况下系统存贮了1G的消息没有被取走,消费者挂死现象。

坏尐絯 2021-11-26 12:03:02

你是说队列满了,消费者不能取出消息?这种情况没有碰到过。你确定没有其他问题干扰吗

断爱 2021-11-26 11:47:57

另外如果在发送者发送消息很快的情况下,内存配置128满了,也会出现停止不消费消息问题,这个应该是开源软件的缺陷。

海之角 2021-11-26 08:16:38

你说的我知道,我认为这个是MQ缺陷导致的,在内存配置128M 系统内存配置1G的情况下,如果1G满了,会导致消费者不消费消息,假死了。你不可能排除在实际项目场景客户的环境就是不好情况。

月牙弯弯 2021-11-26 06:11:20

jms服务器和你的应用服务器可以放到同一台机器上,也可以分两台放,就算分两台放也是路由器连接起来的,局域网传东西有多快你知道吧,当然不排除访问量巨大的是时候,访问量巨大也可以集群两台jms服务器,当然要先确定瓶颈在那个地方。

岁吢 2021-11-25 00:26:42

中国这个方面是不是用这个的很少啊?无人回答我问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文