activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ttmdev <joe.fernan...@ttmsolutions.com>
Subject Re: load balancing architecture question
Date Mon, 24 Dec 2007 17:40:41 GMT

You want to have more than one URI for your composite 'failover'
connector/transport.

failover:(uri1,uri2,uri3,...)

As an alternative to using multicast (could be somewhat unreliable) for
message passing, you may want to consider using the 'fanout' transport for
replicating commands from your clients out to the  broker farms.  

http://activemq.apache.org/fanout-transport-reference.html

If you intend to fanout to queues, and not just topics, then set the
“fanOutQueues” option to true.  By default, the fanout does not replicate
commands to queues; only topics. 

fanout:(static:(tcp://linux01:61616,tcp://linux02:61616))?fanoutQueues=true

You can use a discovery URI other than the default. Here's a snippet from
the broker xml file. In this case, the brokers will auto discover themselves
via 239.255.2.5. 

<transportConnectors>
    <transportConnector 
        name="default" 
        uri="tcp://localhost:61616"
        discoveryURI="multicast://239.255.2.5"
    />
</transportConnectors>

<networkConnectors>
   <networkConnector 
      name="default" 
      uri="multicast://239.255.2.5"
   />
</networkConnectors>

You can also use rendezvous, instead of multicast, for discovery.    

Joe



hagai wrote:
> 
> Hi,
> I have some questions about load balancing:
> We have a few server farms, and also multiple JMS clients deployed over
> the internet. Computers in server farms can talk JMS to each other, and
> there is also low volume communication between server farms.
> The remote clients connect to the broker using SSL. HA is probably not
> important to us.
> 
> I want to use load balancing using a standard IP load balancer (such as
> cisco ACE). I plan to provide two URIs for each server farm: One SSL URI
> for the remote clients, and one TCP URI which will be used for
> communication between server farms (over a VPN connection). I don't want
> to use load balancing in the client using since I want to be able to add
> and remove brokers without changing the clients. Therefore, the URIs will
> contain the load balancer's IP. The client's URI will be something like
> "failover:(ssl://lb.liveperson.net)".
> 
> When a client, or broker from another server farm, connects the load
> balancer it will select a broker, and all communication from this client
> will reach the same broker until it is down. 
> 
> My questions are:
> 1. Does this configuration make sense? :)
> 
> 2. Is there a way to use multicast to send messages between brokers? since
> I may have distributed topics and queues I want to be able to send
> messages once for the whole server farm, and not duplicate it for each
> broker.
> 
> 3. I am using activemq 4.1. If I use multicast discovery, can I use
> another discovery URI except "default"? I tried using another URI and it
> didn't work.
> 
> 4. If the answer for 2 is "no, you can't use multicast to send messages
> between brokers" - which transports support multicast discovery? Is TCP
> the right choice here? (for communications between brokers in the same
> server farm).
> 
> Thanks,
> Hagai.
> 

-- 
View this message in context: http://www.nabble.com/load-balancing-architecture-question-tp14485909s2354p14489830.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message