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

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

   java.lang.Thread.State: RUNNABLEat 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 java.lang.Object)at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:940)at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)- locked <0x00000000d5a90948> (a sun.security.ssl.AppInputStream)at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)at org.apache.http.impl.io.SessionInputBufferImpl.read(SessionInputBufferImpl.java:208)at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:191)at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:238)at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:117)at org.apache.http.client.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:73)at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)- locked <0x00000000d5a84118> (a java.io.InputStreamReader)at java.io.InputStreamReader.read(InputStreamReader.java:184)at java.io.Reader.read(Reader.java:140)at org.apache.http.util.EntityUtils.toString(EntityUtils.java:247)at org.apache.http.util.EntityUtils.toString(EntityUtils.java:273)

长达5分钟多钟的idle状态,直到报了多次Read timed out错误后才重新开始消费

java.net.SocketTimeoutException: Read timed outat java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_161]at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_161]at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_161]at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_161]at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) ~[?:1.8.0_161]at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:593) ~[?:1.8.0_161]at sun.security.ssl.InputRecord.read(InputRecord.java:532) ~[?:1.8.0_161]at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983) ~[?:1.8.0_161]at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:940) ~[?:1.8.0_161]at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) ~[?:1.8.0_161]at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139) ~[httpcore-4.4.1.jar:4.4.1]at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155) ~[httpcore-4.4.1.jar:4.4.1]at org.apache.http.impl.io.SessionInputBufferImpl.read(SessionInputBufferImpl.java:208) ~[httpcore-4.4.1.jar:4.4.1]at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:191) ~[httpcore-4.4.1.jar:4.4.1]at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137) ~[httpclient-4.4.1.jar:4.4.1]at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:238) ~[?:1.8.0_161]at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158) ~[?:1.8.0_161]at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:117) ~[?:1.8.0_161]at org.apache.http.client.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:73) ~[httpclient-4.4.1.jar:4.4.1]at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) ~[?:1.8.0_161]at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) ~[?:1.8.0_161]at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) ~[?:1.8.0_161]at java.io.InputStreamReader.read(InputStreamReader.java:184) ~[?:1.8.0_161]at java.io.Reader.read(Reader.java:140) ~[?:1.8.0_161]at org.apache.http.util.EntityUtils.toString(EntityUtils.java:247) ~[httpcore-4.4.1.jar:4.4.1]at org.apache.http.util.EntityUtils.toString(EntityUtils.java:273) ~[httpcore-4.4.1.jar:4.4.1]

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

  1. SpringBoot集成ActiveMq消息队列实现即时和延迟处理

    原文链接:https://blog.csdn.net/My_harbor/article/details/81328727 一.安装ActiveMq 具体安装步骤:自己谷歌去 二.新建springbo ...

  2. 消息队列的消费幂等性如何保证

    参考大佬文章:消息队列的消费幂等性如何保证 这里先介绍下幂等性: 幂等性: 一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同 比如:一条数据或者一个请求,重复发起多次,我们要确保对 ...

  3. redis list 实现消息队列 多线程消费

    redis list 实现消息队列 多线程消费 redis list 实现消息队列 多线程消费 redis list 实现消息队列 多线程消费 利用redis list 命令: Redis Brpop ...

  4. activemq nodejs stomp 重连机制_5分钟优劣分析 Kafka、RabbitMQ、RocketMQ、ActiveMQ消息队列...

    一.资料文档 Kafka:中,有kafka作者自己写的书,网上资料也有一些. rabbitmq:有一些不错的书,网上资料多. zeromq:少.没有专门写zeromq的书,网上的资料多是一些代码的实现 ...

  5. ActiveMQ消息队列安装和使用

    ActiveMQ ActiveMQ介绍 什么是ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规 ...

  6. SpringBoot整合activeMQ消息队列手动签收(Session.CLIENT_ACKNOWLEDGE)为什么失效啊?

    今天在家隔离办公,不太忙,然后就琢磨起来消息队列activeMQ的消息事务来解决分布式事务,但是奈何在SpringBoot整合activeMQ时,其消费者手动签收消息时出现了问题-->当acti ...

  7. ActiveMQ消息队列的使用及应用

    目录:  一:JMQ的两种消息模式1.1:点对点的消息模式1.2:订阅模式 二:点对点的实现代码2.1:点对点的发送端2.2:点对点的接收端 三:订阅/发布模式的实现代码3.1:订阅模式的发送端3.2 ...

  8. activeMQ消息队列(xml方式)

    一.项目搭建(spring+activeMQ环境) 导包: <!-- 消息队列 MQ --><dependency><groupId>org.apache.acti ...

  9. 消息队列篇—详谈ActiveMQ消息队列模式的分析及使用

    2019独角兽企业重金招聘Python工程师标准>>> 消息队列(Message Queue)是分布式系统中重要的组件,通用使用场景可以简单地描述为当不需要立即获得结果,但是并发量需 ...

最新文章

  1. 周鸿祎:过去只能在虚拟世界里发起的网络攻击,现在都可以通过物联网直达生产一线...
  2. Promethus+Grafana监控解决方案
  3. HTTP GET URL的最大长度
  4. Canvas之translate,scale,rotate,skew
  5. linux进程--进程调度算法(十三)
  6. Autodesk PowerInspect 2021中文版
  7. 【深度学习】L1、L2损失 和 L1、L2正则化
  8. 在京东、天猫、淘宝都存在情况下,为什么聚美还能崛起?
  9. ubuntu搭建zookeeper集群
  10. python词频统计代码_机器学习必备宝典-《统计学习方法》的python代码实现及课件...
  11. an 转换器_400V耐压场效应管替代IRF730B型号参数,使用在DC-DC电源转换器。_场效应管吧...
  12. TensorFlow5-监督式机器学习基础知识
  13. VMware Cloud Director 10.4 发布 (含下载) - 云计算调配和管理平台
  14. 猿创征文|工具百宝箱-数据库连接工具-接口调试与测试工具-抓包工具
  15. Guideline 2.3.3 -- We noticed that your screenshots do not sufficiently reflect your app in use
  16. 看雪CTF.TSRC 2018 团队赛 第二题 半加器 writeup
  17. 三菱fx3uplc恢复出厂设置_清除三菱FX系列PLC密码的三种方法
  18. Android 录制手机内部声音(screen recorder)framework层问题分析
  19. APM的3DR无线数传的安装和调试
  20. 设计一款理财产品并发布推广

热门文章

  1. 《iOS10系列越狱,需要知道的都在这。》
  2. 如何讲授计算机专业课中的重点难点,【计算机基础论文】计算机基础课程在教学中如何突破难点(共2658字)...
  3. 用html5做立体盒子,css3制作3d盒子
  4. 兔年大吉丨云和恩墨恭祝您新春快乐!
  5. 实现pc端信纸留言板
  6. es(elasticsearch)查询数据出现异常Result window is too large, from + size must be less than or equal to
  7. iis打不开默认的ie浏览器
  8. linux驱动获取函数失败信息,linux驱动调试--段错误之栈信息分析
  9. 全局唯一序列号的生成
  10. day 12 生成器和生成器函数以及各种推导式