开发过程中遇到一个activemq死锁的问题,痛苦经历:
应用场景:
- 后台进程(appserver1)不断产生任务, 发送到queue上
- 前台应用(appservers)请求过来,到queue上获取消息,并根据消息取对应数据
问题:
多线程到同一个queue上直接调用receive,收消息时,会将queue锁住:
服务器端dump出来的信息如下:
ound one Java-level deadlock: ============================= "tcp:///10.0.72.76:52012": waiting to lock monitor 0x080ead4c (object 0x952b6950, a java.util.LinkedList), which is held by "tcp:///10.0.72.76:52010" "tcp:///10.0.72.76:52010": |