我有一个完整图拓扑结构的经纪人网络,在不同服务器上有3个节点:A,B和C.每个经纪人都有一个生产者附加,为了测试目的,只有一个非经纪人代理商C上的消费者。当我使用完整图表拓扑时,每个代理还具有其他每个节点的代理消费者。ActiveMQ不在经纪人之间分配消息
问题是:A收到几条消息。我期望它将这些消息转发给经纪人C,后者拥有一位“真正”的消费者。这种情况没有发生,经纪人A将这些消息存储起来,直到“真正的”消费者连接到它。
我的配置(或理解)有什么问题?
我使用的是ActiveMQ 5.9.0。
这里是我的经纪人A. activemq.xml中这是相同的B,C,只改变名称:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="broker-A" dataDirectory="${activemq.data}">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic="tokio.>">
<subscriptionRecoveryPolicy>
<noSubscriptionRecoveryPolicy/>
</subscriptionRecoveryPolicy>
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="1000"/>
</pendingMessageLimitStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<managementContext>
<managementContext createConnector="true"/>
</managementContext>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage percentOfJvmHeap="70" />
</memoryUsage>
<storeUsage>
<storeUsage limit="40 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="10 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<networkConnectors>
<networkConnector name="linkTo-broker-B"
uri="static:(tcp://SRVMSG01:61616)"
duplex="true"
/>
<networkConnector name="linkTo-broker-C"
uri="static:(tcp://SRVMSG03:61616)"
duplex="true"
/>
</networkConnectors>
<transportConnectors>
<transportConnector uri="tcp://localhost:0" discoveryUri="multicast://default"/>
<transportConnector name="nio" uri="nio://0.0.0.0:61616" />
</transportConnectors>
</broker>
</beans>
这一项无效。我还必须指定通过将队列添加为dynamicallyIncludedDestinations,代理将如何通过代理进行传播。 –
我解释为“A收到一些消息”,意思是有些消息被转发给A,但并不是所有消息都是(而其余的都是C成功的),所以我甚至没有考虑过你可能会不是转发*任何*消息。我很高兴你想出了解决方案。 – Tim