ActiveMQ 无法相互收到消息 5

有两台MQ,一台MQ01(192.168.15.193),一台MQ02(192.168.15.194).两台MQ做了相互转发消息设置。两台上都设置了Queue,Topic... 有两台MQ, 一台MQ01(192.168.15.193),一台MQ02(192.168.15.194).两台MQ做了相互转发消息设置。两台上都设置了Queue,Topic
MQ01:
<networkConnectors>
<networkConnector uri="static:(tcp://192.168.15.194:61616)" decreaseNetworkConsumerPriority="true"/>
</networkConnectors>

MQ02:
<networkConnectors>
<networkConnector uri="static:(tcp://192.168.15.193:61616)" decreaseNetworkConsumerPriority="true"/>
</networkConnectors>

才开始两台MQ收发消息没有任何问题,但是运行一段时间后,两台MQ相互直接收发消息就不正常了。比如:一个消费者连接到MQ01上,一个生产者连接到
MQ02上发消息,但是MQ01并没有收到消息。或者一个消费者连接到MQ02上,一个生产者连接到MQ01上发消息,但是MQ02并没有收到消息.但是
单独将生产者跟消费者连接到同一个MQ上,收发消息正常。此时MQ01跟MQ02之间消息收发不成功,两台MQ日志上都没有错误,而且两台MQ之间的连接
显示正常。每次出现这种情况后,我都是重启两台MQ,问题可以解决,但是过不了多久,问题又重现了。请问各位大牛,遇到过这种情况没,是怎么解决的,小弟
不胜感激!!!
我测试出,当MQ的Java虚拟机内存使用达到一定数量时,会必现这种情况。但是当我调低了消息过期时间,队列不活动删除时间,还是出现了 一台MQ无法 通知另外一台MQ,有消费者连上了。
展开
 我来答
qinxcb2011
2014-06-11 · 超过10用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:20万
展开全部
经过的实际处理,在activemq 5.9.1中也发现这种问题。
经发现是queue的策略没有配置导致的。
在<destinationPolicy>
<policyMap>
<policyEntries>增加对Queue的策略管理如下:
<!-- 属性enableAudit=false,是防止消息在回流后被当做重复消息而不被转发 -->
<policyEntry queue=">" producerFlowControl="false" memoryLimit="10mb" enableAudit="false">
<!-- 属性replayWhenNoConsumers=true,保证在该节点断开,并重启后,且consumers已经连接到另外一个节点上的情况下,消息自动回流到原始节点 -->
<networkBridgeFilterFactory>
<conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/>
</networkBridgeFilterFactory>
</policyEntry>
同时你需要通过配置broker相关的通信处理:
<networkConnectors>
<networkConnector uri="static:failover://(tcp://IP:端口号,tcp://IP:端口号)" duplex="true" conduitSubscriptions="false"/>
</networkConnectors>
这样就不会有问题了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xwcjilindaxue
2013-07-17
知道答主
回答量:5
采纳率:0%
帮助的人:3.3万
展开全部
跟很多配置相关吧,共同学习中。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式