关于ActiveMQ消息队列不消费的思考

博主在使用ActiveMQ时发现消息队列中的消息长时间未被消费,通过线程Dump分析发现消费者线程在读取消息位置出现超过5分钟的闲置状态,最终导致Read timed out错误。这揭示了ActiveMQ可能存在的性能问题。
摘要由CSDN通过智能技术生成

对于某些消息队列中间件标榜自己吞吐量高一直无法理解,一直觉得,不同的消息队列实现,吞吐量不会差太多,不管是多是少总不会差一个量级上,,一丁点差距没有值得称道的地方。

直到我用了ActiveMQ,才终于明白,标榜吞吐量高,全是同行衬托的,ActiveMQ的实现上一定有一个不大的Bug。这个Bug源于我发现的一个现象,ActiveMQ管理界面上可以看队列中还有7条消息等待多时仍然迟迟没有消费。将线程Dump下来后发现,Java消费者线程却全部卡在了读取消息的位置

   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.SocketInputStream.read(SocketInputStream.java:171)
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
        at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
        at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:593)
        at sun.security.ssl.InputRecord.read(InputRecord.java:532)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
        - locked <0x00000000d5a90800> (a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值