ActiveMQ网络订阅问题

时间:2017-04-30 23:35:09

标签: activemq

我在带有网络连接器的ActiveMQ中有一个奇怪的行为。这是设置:

  • 代理A通过61616
  • 上的nio传输连接器侦听连接
  • 经纪人B与经纪人A建立双工连接
  • A上的生产者将消息发送到已知队列,例如q1
  • B上的消费者订阅队列q1

我可以清楚地看到双工连接已建立,但B上的消费者没有收到任何消息。

在jconsole上我可以看到代理A正在向网络消费者发送消息,最多达到预取限制(1000条消息)的值,这似乎很好。 " DispatchedQueue"," DispatchedQueueSize",更重要的是" MessageCountAwaitingAck" 计数器具有相同的值:它们卡住到1000

在代理B上,队列大小为0.

在系统级别,我可以清楚地看到经纪人A和经纪人B之间已建立的联系:

# On broker A (192.168.x.x)
$ netstat -t -p -n
tcp    89984 135488 192.168.x.x:61616 172.31.x.x:57270 ESTABLISHED 18591/java

# On broker B (172.31.x.x)
$ netstat -t -p -n
tcp    102604 101144 172.31.x.x:57270 192.168.x.x:61616 ESTABLISHED 32455/java

奇怪的是:经纪人A和B上的recv-q和send-q似乎有一些数据未被另一方读取。他们不会增加或减少,他们只是坚持这些价值观。

即使在TRACE级别,双方的ActiveMQ日志也不会说太多。

似乎经纪人A或经纪人B都没有向另一方发送消息

怎么可能?什么是潜在的原因和解决方法?

编辑:我应该补充一点,我在双方使用嵌入式ActiveMQ 5.13.4。

感谢。

0 个答案:

没有答案