mirror of https://github.com/apache/activemq.git
test topic replication in full mesh network scenario
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1074060 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0298440d4f
commit
d884ba2964
|
@ -0,0 +1,116 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.activemq.usecases;
|
||||
|
||||
import org.apache.activemq.JmsMultipleBrokersTestSupport;
|
||||
import org.apache.activemq.util.MessageIdList;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import javax.jms.Destination;
|
||||
import javax.jms.MessageConsumer;
|
||||
|
||||
public class TopicReplicationTest extends JmsMultipleBrokersTestSupport {
|
||||
|
||||
public static final int MSG_COUNT = 10;
|
||||
|
||||
public void testReplication() throws Exception {
|
||||
createBroker(new ClassPathResource("org/apache/activemq/usecases/replication-broker1.xml"));
|
||||
createBroker(new ClassPathResource("org/apache/activemq/usecases/replication-broker2.xml"));
|
||||
createBroker(new ClassPathResource("org/apache/activemq/usecases/replication-broker3.xml"));
|
||||
createBroker(new ClassPathResource("org/apache/activemq/usecases/replication-broker4.xml"));
|
||||
|
||||
brokers.get("replication-broker1").broker.waitUntilStarted();
|
||||
brokers.get("replication-broker2").broker.waitUntilStarted();
|
||||
brokers.get("replication-broker3").broker.waitUntilStarted();
|
||||
brokers.get("replication-broker4").broker.waitUntilStarted();
|
||||
|
||||
Destination dest = createDestination("replication", true);
|
||||
|
||||
// Setup consumers
|
||||
MessageConsumer clientA = createConsumer("replication-broker2", dest);
|
||||
MessageConsumer clientB = createConsumer("replication-broker3", dest);
|
||||
MessageConsumer clientC = createConsumer("replication-broker4", dest);
|
||||
MessageConsumer clientD = createConsumer("replication-broker4", dest);
|
||||
|
||||
//let consumers propogate around the network
|
||||
Thread.sleep(2000);
|
||||
|
||||
// Get message count
|
||||
MessageIdList msgsA = getConsumerMessages("replication-broker2", clientA);
|
||||
MessageIdList msgsB = getConsumerMessages("replication-broker3", clientB);
|
||||
MessageIdList msgsC = getConsumerMessages("replication-broker4", clientC);
|
||||
MessageIdList msgsD = getConsumerMessages("replication-broker4", clientD);
|
||||
|
||||
|
||||
|
||||
// send messages to broker1
|
||||
sendMessages("replication-broker1", dest, MSG_COUNT);
|
||||
|
||||
|
||||
msgsA.waitForMessagesToArrive(MSG_COUNT);
|
||||
msgsB.waitForMessagesToArrive(MSG_COUNT);
|
||||
msgsC.waitForMessagesToArrive(MSG_COUNT);
|
||||
msgsD.waitForMessagesToArrive(MSG_COUNT);
|
||||
|
||||
assertEquals(MSG_COUNT, msgsA.getMessageCount());
|
||||
assertEquals(MSG_COUNT, msgsB.getMessageCount());
|
||||
assertEquals(MSG_COUNT, msgsC.getMessageCount());
|
||||
assertEquals(MSG_COUNT, msgsD.getMessageCount());
|
||||
|
||||
// send messages to broker4
|
||||
sendMessages("replication-broker4", dest, MSG_COUNT);
|
||||
|
||||
msgsA.waitForMessagesToArrive(2 * MSG_COUNT);
|
||||
msgsB.waitForMessagesToArrive(2 * MSG_COUNT);
|
||||
msgsC.waitForMessagesToArrive(2 * MSG_COUNT);
|
||||
msgsD.waitForMessagesToArrive(2 * MSG_COUNT);
|
||||
|
||||
assertEquals(2 * MSG_COUNT, msgsA.getMessageCount());
|
||||
assertEquals(2 * MSG_COUNT, msgsB.getMessageCount());
|
||||
assertEquals(2 * MSG_COUNT, msgsC.getMessageCount());
|
||||
assertEquals(2 * MSG_COUNT, msgsD.getMessageCount());
|
||||
|
||||
// send messages to broker3
|
||||
sendMessages("replication-broker3", dest, MSG_COUNT);
|
||||
|
||||
msgsA.waitForMessagesToArrive(3 * MSG_COUNT);
|
||||
msgsB.waitForMessagesToArrive(3 * MSG_COUNT);
|
||||
msgsC.waitForMessagesToArrive(3 * MSG_COUNT);
|
||||
msgsD.waitForMessagesToArrive(3 * MSG_COUNT);
|
||||
|
||||
assertEquals(3 * MSG_COUNT, msgsA.getMessageCount());
|
||||
assertEquals(3 * MSG_COUNT, msgsB.getMessageCount());
|
||||
assertEquals(3 * MSG_COUNT, msgsC.getMessageCount());
|
||||
assertEquals(3 * MSG_COUNT, msgsD.getMessageCount());
|
||||
|
||||
// send messages to broker2
|
||||
sendMessages("replication-broker2", dest, MSG_COUNT);
|
||||
|
||||
msgsA.waitForMessagesToArrive(4 * MSG_COUNT);
|
||||
msgsB.waitForMessagesToArrive(4 * MSG_COUNT);
|
||||
msgsC.waitForMessagesToArrive(4 * MSG_COUNT);
|
||||
msgsD.waitForMessagesToArrive(4 * MSG_COUNT);
|
||||
|
||||
assertEquals(4 * MSG_COUNT, msgsA.getMessageCount());
|
||||
assertEquals(4 * MSG_COUNT, msgsB.getMessageCount());
|
||||
assertEquals(4 * MSG_COUNT, msgsC.getMessageCount());
|
||||
assertEquals(4 * MSG_COUNT, msgsD.getMessageCount());
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,121 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<beans
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:amq="http://activemq.apache.org/schema/core"
|
||||
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-2.0.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="replication-broker1"
|
||||
brokerId="replication-broker1"
|
||||
dataDirectory="target/replication-broker1/data"
|
||||
persistent="true"
|
||||
advisorySupport="true">
|
||||
|
||||
<!--
|
||||
For better performances use VM cursor and small memory limit. For
|
||||
more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html Also, if your
|
||||
producer is "hanging", it's probably due to producer flow control.
|
||||
For more information, see:
|
||||
http://activemq.apache.org/producer-flow-control.html
|
||||
-->
|
||||
<destinationPolicy>
|
||||
<policyMap>
|
||||
<policyEntries>
|
||||
<policyEntry topic=">" producerFlowControl="true" memoryLimit="20mb">
|
||||
<pendingSubscriberPolicy>
|
||||
<vmCursor />
|
||||
</pendingSubscriberPolicy>
|
||||
</policyEntry>
|
||||
<policyEntry queue=">" producerFlowControl="true" memoryLimit="20mb" optimizedDispatch="true">
|
||||
<!--
|
||||
Use VM cursor for better latency For more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html
|
||||
|
||||
<pendingQueuePolicy> <vmQueueCursor/> </pendingQueuePolicy>
|
||||
-->
|
||||
</policyEntry>
|
||||
</policyEntries>
|
||||
</policyMap>
|
||||
</destinationPolicy>
|
||||
|
||||
|
||||
<networkConnectors>
|
||||
<networkConnector name="broker1-broker2"
|
||||
uri="static:(tcp://localhost:61617)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="true"
|
||||
suppressDuplicateTopicSubscriptions="true"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker1-broker3"
|
||||
uri="static:(tcp://localhost:61618)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="true"
|
||||
suppressDuplicateTopicSubscriptions="true"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker1-broker4"
|
||||
uri="static:(tcp://localhost:61619)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="true"
|
||||
suppressDuplicateTopicSubscriptions="true"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
</networkConnectors>
|
||||
|
||||
<!--
|
||||
Configure message persistence for the broker. The default persistence
|
||||
mechanism is the KahaDB store (identified by the kahaDB tag). For
|
||||
more information, see: http://activemq.apache.org/persistence.html
|
||||
-->
|
||||
<persistenceAdapter>
|
||||
<kahaDB directory="target/replication-broker1/data/kahadb" />
|
||||
</persistenceAdapter>
|
||||
|
||||
<systemUsage>
|
||||
<amq:systemUsage>
|
||||
<amq:memoryUsage>
|
||||
<amq:memoryUsage limit="700mb" />
|
||||
</amq:memoryUsage>
|
||||
<amq:storeUsage>
|
||||
<amq:storeUsage limit="1gb" name="foo" />
|
||||
</amq:storeUsage>
|
||||
<amq:tempUsage>
|
||||
<amq:tempUsage limit="256mb" />
|
||||
</amq:tempUsage>
|
||||
</amq:systemUsage>
|
||||
</systemUsage>
|
||||
|
||||
<!-- The transport connectors ActiveMQ will listen to -->
|
||||
<transportConnectors>
|
||||
<transportConnector name="tcp" uri="tcp://0.0.0.0:61616" />
|
||||
</transportConnectors>
|
||||
</broker>
|
||||
</beans>
|
|
@ -0,0 +1,120 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<beans
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:amq="http://activemq.apache.org/schema/core"
|
||||
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-2.0.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="replication-broker2"
|
||||
brokerId="replication-broker2"
|
||||
dataDirectory="target/replication-broker2/data"
|
||||
persistent="true"
|
||||
advisorySupport="true">
|
||||
|
||||
<!--
|
||||
For better performances use VM cursor and small memory limit. For
|
||||
more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html Also, if your
|
||||
producer is "hanging", it's probably due to producer flow control.
|
||||
For more information, see:
|
||||
http://activemq.apache.org/producer-flow-control.html
|
||||
-->
|
||||
<destinationPolicy>
|
||||
<policyMap>
|
||||
<policyEntries>
|
||||
<policyEntry topic=">" producerFlowControl="true" memoryLimit="20mb">
|
||||
<pendingSubscriberPolicy>
|
||||
<vmCursor />
|
||||
</pendingSubscriberPolicy>
|
||||
</policyEntry>
|
||||
<policyEntry queue=">" producerFlowControl="true" memoryLimit="20mb" optimizedDispatch="true">
|
||||
<!--
|
||||
Use VM cursor for better latency For more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html
|
||||
|
||||
<pendingQueuePolicy> <vmQueueCursor/> </pendingQueuePolicy>
|
||||
-->
|
||||
</policyEntry>
|
||||
</policyEntries>
|
||||
</policyMap>
|
||||
</destinationPolicy>
|
||||
|
||||
<networkConnectors>
|
||||
<networkConnector name="broker2-broker1"
|
||||
uri="static:(tcp://localhost:61616)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker2-broker3"
|
||||
uri="static:(tcp://localhost:61618)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker2-broker4"
|
||||
uri="static:(tcp://localhost:61619)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
</networkConnectors>
|
||||
|
||||
<!--
|
||||
Configure message persistence for the broker. The default persistence
|
||||
mechanism is the KahaDB store (identified by the kahaDB tag). For
|
||||
more information, see: http://activemq.apache.org/persistence.html
|
||||
-->
|
||||
<persistenceAdapter>
|
||||
<kahaDB directory="target/replication-broker2/data/kahadb" />
|
||||
</persistenceAdapter>
|
||||
|
||||
<systemUsage>
|
||||
<amq:systemUsage>
|
||||
<amq:memoryUsage>
|
||||
<amq:memoryUsage limit="700mb" />
|
||||
</amq:memoryUsage>
|
||||
<amq:storeUsage>
|
||||
<amq:storeUsage limit="1gb" name="foo" />
|
||||
</amq:storeUsage>
|
||||
<amq:tempUsage>
|
||||
<amq:tempUsage limit="256mb" />
|
||||
</amq:tempUsage>
|
||||
</amq:systemUsage>
|
||||
</systemUsage>
|
||||
|
||||
<!-- The transport connectors ActiveMQ will listen to -->
|
||||
<transportConnectors>
|
||||
<transportConnector name="tcp" uri="tcp://0.0.0.0:61617" />
|
||||
</transportConnectors>
|
||||
</broker>
|
||||
</beans>
|
|
@ -0,0 +1,120 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<beans
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:amq="http://activemq.apache.org/schema/core"
|
||||
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-2.0.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="replication-broker3"
|
||||
brokerId="replication-broker3"
|
||||
dataDirectory="target/replication-broker3/data"
|
||||
persistent="true"
|
||||
advisorySupport="true">
|
||||
|
||||
<!--
|
||||
For better performances use VM cursor and small memory limit. For
|
||||
more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html Also, if your
|
||||
producer is "hanging", it's probably due to producer flow control.
|
||||
For more information, see:
|
||||
http://activemq.apache.org/producer-flow-control.html
|
||||
-->
|
||||
<destinationPolicy>
|
||||
<policyMap>
|
||||
<policyEntries>
|
||||
<policyEntry topic=">" producerFlowControl="true" memoryLimit="20mb">
|
||||
<pendingSubscriberPolicy>
|
||||
<vmCursor />
|
||||
</pendingSubscriberPolicy>
|
||||
</policyEntry>
|
||||
<policyEntry queue=">" producerFlowControl="true" memoryLimit="20mb" optimizedDispatch="true">
|
||||
<!--
|
||||
Use VM cursor for better latency For more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html
|
||||
|
||||
<pendingQueuePolicy> <vmQueueCursor/> </pendingQueuePolicy>
|
||||
-->
|
||||
</policyEntry>
|
||||
</policyEntries>
|
||||
</policyMap>
|
||||
</destinationPolicy>
|
||||
|
||||
<networkConnectors>
|
||||
<networkConnector name="broker3-broker1"
|
||||
uri="static:(tcp://localhost:61616)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker3-broker2"
|
||||
uri="static:(tcp://localhost:61617)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker3-broker4"
|
||||
uri="static:(tcp://localhost:61619)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
</networkConnectors>
|
||||
|
||||
<!--
|
||||
Configure message persistence for the broker. The default persistence
|
||||
mechanism is the KahaDB store (identified by the kahaDB tag). For
|
||||
more information, see: http://activemq.apache.org/persistence.html
|
||||
-->
|
||||
<persistenceAdapter>
|
||||
<kahaDB directory="target/replication-broker3/data/kahadb" />
|
||||
</persistenceAdapter>
|
||||
|
||||
<systemUsage>
|
||||
<amq:systemUsage>
|
||||
<amq:memoryUsage>
|
||||
<amq:memoryUsage limit="700mb" />
|
||||
</amq:memoryUsage>
|
||||
<amq:storeUsage>
|
||||
<amq:storeUsage limit="1gb" name="foo" />
|
||||
</amq:storeUsage>
|
||||
<amq:tempUsage>
|
||||
<amq:tempUsage limit="256mb" />
|
||||
</amq:tempUsage>
|
||||
</amq:systemUsage>
|
||||
</systemUsage>
|
||||
|
||||
<!-- The transport connectors ActiveMQ will listen to -->
|
||||
<transportConnectors>
|
||||
<transportConnector name="tcp" uri="tcp://0.0.0.0:61618" />
|
||||
</transportConnectors>
|
||||
</broker>
|
||||
</beans>
|
|
@ -0,0 +1,120 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<beans
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:amq="http://activemq.apache.org/schema/core"
|
||||
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-2.0.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="replication-broker4"
|
||||
brokerId="replication-broker4"
|
||||
dataDirectory="target/replication-broker4/data"
|
||||
persistent="true"
|
||||
advisorySupport="true">
|
||||
|
||||
<!--
|
||||
For better performances use VM cursor and small memory limit. For
|
||||
more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html Also, if your
|
||||
producer is "hanging", it's probably due to producer flow control.
|
||||
For more information, see:
|
||||
http://activemq.apache.org/producer-flow-control.html
|
||||
-->
|
||||
<destinationPolicy>
|
||||
<policyMap>
|
||||
<policyEntries>
|
||||
<policyEntry topic=">" producerFlowControl="true" memoryLimit="20mb">
|
||||
<pendingSubscriberPolicy>
|
||||
<vmCursor />
|
||||
</pendingSubscriberPolicy>
|
||||
</policyEntry>
|
||||
<policyEntry queue=">" producerFlowControl="true" memoryLimit="20mb" optimizedDispatch="true">
|
||||
<!--
|
||||
Use VM cursor for better latency For more information, see:
|
||||
|
||||
http://activemq.apache.org/message-cursors.html
|
||||
|
||||
<pendingQueuePolicy> <vmQueueCursor/> </pendingQueuePolicy>
|
||||
-->
|
||||
</policyEntry>
|
||||
</policyEntries>
|
||||
</policyMap>
|
||||
</destinationPolicy>
|
||||
|
||||
<networkConnectors>
|
||||
<networkConnector name="broker4-broker1"
|
||||
uri="static:(tcp://localhost:61616)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker4-broker2"
|
||||
uri="static:(tcp://localhost:61617)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
<networkConnector name="broker4-broker3"
|
||||
uri="static:(tcp://localhost:61618)"
|
||||
dynamicOnly="true"
|
||||
prefetchSize="1000"
|
||||
conduitSubscriptions="true"
|
||||
decreaseNetworkConsumerPriority="false"
|
||||
suppressDuplicateTopicSubscriptions="false"
|
||||
networkTTL="3">
|
||||
</networkConnector>
|
||||
</networkConnectors>
|
||||
|
||||
<!--
|
||||
Configure message persistence for the broker. The default persistence
|
||||
mechanism is the KahaDB store (identified by the kahaDB tag). For
|
||||
more information, see: http://activemq.apache.org/persistence.html
|
||||
-->
|
||||
<persistenceAdapter>
|
||||
<kahaDB directory="target/replication-broker4/data/kahadb" />
|
||||
</persistenceAdapter>
|
||||
|
||||
<systemUsage>
|
||||
<amq:systemUsage>
|
||||
<amq:memoryUsage>
|
||||
<amq:memoryUsage limit="700mb" />
|
||||
</amq:memoryUsage>
|
||||
<amq:storeUsage>
|
||||
<amq:storeUsage limit="1gb" name="foo" />
|
||||
</amq:storeUsage>
|
||||
<amq:tempUsage>
|
||||
<amq:tempUsage limit="256mb" />
|
||||
</amq:tempUsage>
|
||||
</amq:systemUsage>
|
||||
</systemUsage>
|
||||
|
||||
<!-- The transport connectors ActiveMQ will listen to -->
|
||||
<transportConnectors>
|
||||
<transportConnector name="tcp" uri="tcp://0.0.0.0:61619" />
|
||||
</transportConnectors>
|
||||
</broker>
|
||||
</beans>
|
Loading…
Reference in New Issue