activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anthrope ...@anthrope.com>
Subject Re: Network of brokers
Date Thu, 21 Dec 2006 00:47:01 GMT

Bernard,

      I agree with you on this. I've posted detailed questions on
clustering/networks or brokers and have met deafening silence. The folks on
this list are very helpful and willing to share, so I'll hazard a guess that
the clustering/network or brokers feature is simply not ready. I've tried a
ton of different configurations, and none of them work the way they're
supposed to. The documentation describes a broker cluster as a logical group
of clusters, but the behaviour I see is anything but that. For instance, I
can set things up so that I've got two brokers who know about each other
(via their respective netWorkConnector specifications), but cannot have a
producer produce data on one broker and a consumer consume data from the
other!

What I have been able to get done is a Master-Slave configuration using
MySQL. But that is painfully slow, especially if you're dealing with large
messages. What I will do is post my configuration files when I have tweaked
and tuned them to the point that they can work in a production environment.
Hopefully others will find them useful, even if only as a starting point.

Regards,
Prashanth


Bernhard2 wrote:
> 
> Hello,
> 
> I experienced the same problem in my tests.
> 
> Who can help Sanne and me here? I’m subscribed to this mailing list for
> some time now. As soon when it comes to help for topics around “network of
> brokers”, I noticed that normally nobody is able (or wants?) to help. Is a
> “network of brokers” an uncommon used feature? Regarding to the number of
> mails for this topic I do not think so.
> 
> Thanks and have a nice day,
> 
> Bernhard
> 
> 
> 
> sanne wrote:
>> 
>> Hi,
>> 
>> I'm prototyping an ActiveMQ network of brokers using 4.0.2 RC 6. The
>> setup consists of 2 producers and 2 consumers. At startup things look
>> fine. After restarting one of the consumers one or more times it stops
>> receiving messages. All the work is done by the remaining cosumer. 
>> 
>> The connection dialog of the restarted broker looks o.k., but it doesn't
>> receive messages anymore.
>> (I don't use JmsTemplate) :
>> 
>> <code>
>> 2006-10-31 17:12:53,156 DEBUG [ActiveMQ Task]
>> org.apache.activemq.transport.failover.FailoverTransport: Attempting
>> connect to: tcp://localhost:20002
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Task]
>> org.apache.activemq.transport.WireFormatNegotiator: Sending:
>> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
>> TcpNoDelayEnabled=true, SizePrefixDisabled=false, StackTraceEnabled=true,
>> MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Task]
>> org.apache.activemq.transport.failover.FailoverTransport: Connection
>> established
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport Server:
>> tcp://dtams0365:20002]
>> org.apache.activemq.transport.WireFormatNegotiator: Sending:
>> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
>> TcpNoDelayEnabled=true, SizePrefixDisabled=false, StackTraceEnabled=true,
>> MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:20002]
>> org.apache.activemq.transport.WireFormatNegotiator: Received WireFormat:
>> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
>> TightEncodingEnabled=true, TcpNoDelayEnabled=true,
>> SizePrefixDisabled=false, MaxInactivityDuration=30000,
>> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1411]
>> org.apache.activemq.transport.WireFormatNegotiator: Received WireFormat:
>> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
>> TightEncodingEnabled=true, TcpNoDelayEnabled=true,
>> SizePrefixDisabled=false, MaxInactivityDuration=30000,
>> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:20002]
>> org.apache.activemq.transport.WireFormatNegotiator:
>> tcp://localhost/127.0.0.1:20002 before negotiation:
>> OpenWireFormat{version=1, cacheEnabled=false, stackTraceEnabled=false,
>> tightEncodingEnabled=false, sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1411]
>> org.apache.activemq.transport.WireFormatNegotiator: tcp:///127.0.0.1:1411
>> before negotiation: OpenWireFormat{version=1, cacheEnabled=false,
>> stackTraceEnabled=false, tightEncodingEnabled=false,
>> sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:20002]
>> org.apache.activemq.transport.WireFormatNegotiator:
>> tcp://localhost/127.0.0.1:20002 after negotiation:
>> OpenWireFormat{version=1, cacheEnabled=true, stackTraceEnabled=true,
>> tightEncodingEnabled=true, sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1411]
>> org.apache.activemq.transport.WireFormatNegotiator: tcp:///127.0.0.1:1411
>> after negotiation: OpenWireFormat{version=1, cacheEnabled=true,
>> stackTraceEnabled=true, tightEncodingEnabled=true,
>> sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport Server:
>> tcp://dtams0365:20002]
>> org.apache.activemq.transport.WireFormatNegotiator: Sending:
>> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
>> TcpNoDelayEnabled=true, SizePrefixDisabled=false, StackTraceEnabled=true,
>> MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1406]
>> org.apache.activemq.transport.WireFormatNegotiator: Received WireFormat:
>> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
>> TightEncodingEnabled=true, TcpNoDelayEnabled=true,
>> SizePrefixDisabled=false, MaxInactivityDuration=30000,
>> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1406]
>> org.apache.activemq.transport.WireFormatNegotiator: tcp:///127.0.0.1:1406
>> before negotiation: OpenWireFormat{version=1, cacheEnabled=false,
>> stackTraceEnabled=false, tightEncodingEnabled=false,
>> sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1406]
>> org.apache.activemq.transport.WireFormatNegotiator: tcp:///127.0.0.1:1406
>> after negotiation: OpenWireFormat{version=1, cacheEnabled=true,
>> stackTraceEnabled=true, tightEncodingEnabled=true,
>> sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport Server:
>> tcp://dtams0365:20002]
>> org.apache.activemq.transport.WireFormatNegotiator: Sending:
>> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
>> TcpNoDelayEnabled=true, SizePrefixDisabled=false, StackTraceEnabled=true,
>> MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1407]
>> org.apache.activemq.transport.WireFormatNegotiator: Received WireFormat:
>> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
>> TightEncodingEnabled=true, TcpNoDelayEnabled=true,
>> SizePrefixDisabled=false, MaxInactivityDuration=30000,
>> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
>> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1407]
>> org.apache.activemq.transport.WireFormatNegotiator: tcp:///127.0.0.1:1407
>> before negotiation: OpenWireFormat{version=1, cacheEnabled=false,
>> stackTraceEnabled=false, tightEncodingEnabled=false,
>> sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1407]
>> org.apache.activemq.transport.WireFormatNegotiator: tcp:///127.0.0.1:1407
>> after negotiation: OpenWireFormat{version=1, cacheEnabled=true,
>> stackTraceEnabled=true, tightEncodingEnabled=true,
>> sizePrefixDisabled=false}
>> 2006-10-31 17:12:53,234 DEBUG [Thread-3]
>> org.apache.activemq.broker.region.AbstractRegion: Adding destination:
>> topic://ActiveMQ.Advisory.Topic
>> 2006-10-31 17:12:53,234 INFO  [Thread-4]
>> org.apache.activemq.network.DemandForwardingBridge: Network connection
>> between vm://consumer-002#2 and tcp://localhost:10002(producer-002) has
>> been established.
>> 2006-10-31 17:12:53,234 INFO  [Thread-3]
>> org.apache.activemq.network.DemandForwardingBridge: Network connection
>> between vm://consumer-002#0 and tcp://localhost:10001(producer-001) has
>> been established.
>> 2006-10-31 17:12:53,234 DEBUG [main]
>> org.apache.activemq.transport.failover.FailoverTransport: Started.
>> 2006-10-31 17:12:53,265 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1407]
>> org.apache.activemq.broker.region.AbstractRegion: Adding destination:
>> queue://jmsExample
>> 2006-10-31 17:12:53,281 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:10002]
>> org.apache.activemq.broker.region.AbstractRegion: Adding destination:
>> queue://jmsExample
>> 2006-10-31 17:12:53,281 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:10001]
>> org.apache.activemq.broker.region.AbstractRegion: Adding destination:
>> queue://jmsExample
>> 2006-10-31 17:12:53,281 DEBUG [ActiveMQ Transport: tcp:///127.0.0.1:1407]
>> org.apache.activemq.broker.region.AbstractRegion: Adding destination:
>> topic://ActiveMQ.Advisory.Queue
>> 2006-10-31 17:12:53,296 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:10002]
>> org.apache.activemq.broker.region.AbstractRegion: Adding destination:
>> topic://ActiveMQ.Advisory.Consumer.Queue.jmsExample
>> 2006-10-31 17:12:53,296 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:10002]
>> org.apache.activemq.network.DemandForwardingBridge: Forwarding sub on
>> vm://consumer-002#2 from producer-002 :  ConsumerInfo {commandId = 3,
>> responseRequired = false, consumerId =
>> ID:dtams0365-1365-1162311147296-3:1:1:1, destination =
>> queue://jmsExample, prefetchSize = 1000, maximumPendingMessageLimit = 0,
>> browser = false, dispatchAsync = true, selector = null, subcriptionName =
>> null, noLocal = false, exclusive = false, retroactive = false, priority =
>> 0, brokerPath = [ID:dtams0365-1371-1162311149155-0:0,
>> ID:dtams0365-1365-1162311147296-0:0], optimizedAcknowledge = false,
>> noRangeAcks = false, additionalPredicate = null}
>> 2006-10-31 17:12:53,296 DEBUG [ActiveMQ Transport:
>> tcp://localhost/127.0.0.1:10001]
>> org.apache.activemq.network.DemandForwardingBridge: Forwarding sub on
>> vm://consumer-002#0 from producer-001 :  ConsumerInfo {commandId = 3,
>> responseRequired = false, consumerId =
>> ID:dtams0365-1356-1162311143827-3:1:1:1, destination =
>> queue://jmsExample, prefetchSize = 1000, maximumPendingMessageLimit = 0,
>> browser = false, dispatchAsync = true, selector = null, subcriptionName =
>> null, noLocal = false, exclusive = false, retroactive = false, priority =
>> 0, brokerPath = [ID:dtams0365-1371-1162311149155-0:0,
>> ID:dtams0365-1356-1162311143827-0:0], optimizedAcknowledge = false,
>> noRangeAcks = false, additionalPredicate = null}
>> </code>
>> 
>> 
>> The configuration of the brokers is:
>> 
>> <code>
>>   <broker brokerName="consumer-001" persistent="false" useJmx="false">
>>     
>>     <transportConnectors>
>>       <transportConnector uri="tcp://localhost:20001"/>
>>     </transportConnectors>
>> 
>>     <networkConnectors>
>>       <networkConnector networkTTL="3" name="to-producer-001" 
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:10001)" failover="true"/>
>>       <networkConnector networkTTL="3" name="to-producer-002" 
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:10002)" failover="true"/>
>>      </networkConnectors>
>> 
>>     <persistenceAdapter>
>>       <memoryPersistenceAdapter/>
>>     </persistenceAdapter>
>>     
>>   </broker>
>> 
>>   <broker brokerName="consumer-002" persistent="false" useJmx="false">
>>     
>>     <transportConnectors>
>>       <transportConnector uri="tcp://localhost:20002"/>
>>     </transportConnectors>
>>   <broker brokerName="producer-001" persistent="false" useJmx="false">
>>     
>>     <transportConnectors>
>>       <transportConnector uri="tcp://localhost:10001"/>
>>     </transportConnectors>
>> 
>>     <networkConnectors>
>>       <networkConnector networkTTL="3" name="to-consumer-001"
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:20001)" failover="true"/>
>>       <networkConnector networkTTL="3" name="to-consumer-002"
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:20002)" failover="true"/>
>>     </networkConnectors>
>>     
>>     <persistenceAdapter>
>>       <memoryPersistenceAdapter/>
>>     </persistenceAdapter>
>>     
>>   </broker>
>> 
>>   <broker brokerName="producer-001" persistent="false" useJmx="false">
>>     
>>     <transportConnectors>
>>       <transportConnector uri="tcp://localhost:10001"/>
>>     </transportConnectors>
>> 
>>     <networkConnectors>
>>       <networkConnector networkTTL="3" name="to-consumer-001"
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:20001)" failover="true"/>
>>       <networkConnector networkTTL="3" name="to-consumer-002"
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:20002)" failover="true"/>
>>     </networkConnectors>
>>     
>>     <persistenceAdapter>
>>       <memoryPersistenceAdapter/>
>>     </persistenceAdapter>
>>     
>>   </broker>
>> 
>>   <broker brokerName="producer-002" persistent="false" useJmx="false">
>>     
>>     <transportConnectors>
>>       <transportConnector uri="tcp://localhost:10002"/>
>>     </transportConnectors>
>> 
>>     <networkConnectors>
>>       <networkConnector name="to-consumer-001"  networkTTL="3"
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:20001)" failover="true"/>
>>       <networkConnector name="to-consumer-002"  networkTTL="3"
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:20002)" failover="true"/>
>>     </networkConnectors>
>> 
>>     <persistenceAdapter>
>>       <memoryPersistenceAdapter/>
>>     </persistenceAdapter>
>>     
>>   </broker>
>>     <networkConnectors>
>>       <networkConnector  networkTTL="3" name="to-producer-001" 
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:10001)" failover="true"/>
>>       <networkConnector  networkTTL="3" name="to-producer-002" 
>> dynamicOnly="true" conduitSubscriptions="true"
>> uri="static:(tcp://localhost:10002)" failover="true"/>
>>      </networkConnectors>
>> 
>>     <persistenceAdapter>
>>       <memoryPersistenceAdapter/>
>>     </persistenceAdapter>
>>     
>>   </broker>
>> </code>
>> 
>> 
>> Has anyone experienced this before, and maybe solved it?
>> 
>> Regards,
>> 
>> Sanne
>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Network-of-brokers-tf2546736.html#a8000961
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message