Hi Steve,

> -----Original Message-----
> From: Rothkin, Steve (NY81) [mailto:steve.roth...@honeywell.com]
> Sent: Wednesday, July 17, 2013 8:57 AM
> To: users@qpid.apache.org
> Subject: Queue mirroring: clustering vs. replication
> 
> > > Subject: RE: Queue mirroring with message grouping and clustering on
> > > Windows
> > >
> > > > > I'm considering a Qpid.22 implementation under MS Windows for
> > > > > message queueing.  In the future we might go to a mixed
> > > > > environment with both Windows and Linux computers.
> > > > > For fault tolerance, I want the queues to be mirrored across 2
> > > > > to
> > > > > 3 computers which are connected by high speed LAN. Each queue
> > > > > will have multiple consumers on different computers (including
> > > > > some NOT hosting the queue), so I also need to use the message
> > > > > grouping feature to ensure that messages from a single source
> > > > > are not processed
> > > out of order.
> 
> What are the differences between choosing to use clustering to implement
> the solution vs. using ha-replication of individual queues in a non-clustered
> setup?

You summarized it well below, but also, essentially, reusing the capabilities 
already present, or reinventing them to suit the particulars of your use case.

> From what I've read so far it seems that with clustering my work would be a
> lot easier as the broker/resource manager combination would take care of
> failover while with non-clustered I'd have to take care of a bunch of things 
> in
> my code -- designating master, detecting failure (which might take longer),
> failover (including finding and connecting to the new master).

Right. Don't forget to account for all the ways things can fail. Brokers, 
nodes, network links, etc.

> On the other hand it seems that without clustering, I could pick different
> masters for different queues (instead of having cluster resource manager
> designate a specific host as master for all of its queues) which would be one
> way of spreading the load of handling client connections.

You could also run multiple clustered brokers on the same nodes and have 
broker-cluster-1 serve one set of queues and broker-cluster-2 serve a different 
set. I'm not sure about the automatability of keeping the primaries on 
different nodes, but you could write a script to check it and move the primary 
around if needed.

> I could also have
> different operating systems hosting replicas of the same queue (I haven't
> found a cluster resource manager that runs on both Windows and Linux).

That's a great point - clusters are generally uniform.

> I'm also wondering about geographic site mirroring and failover. We have 2
> sites connected by a WAN. The same services are available at both locations.
> Normally a request received at one location would be processed there (and
> sending it to the other site for processing would be more "expensive" as
> would queue mirroring to the other site). But there might be situations
> where one entire site goes down -- if that were to happen it might be good
> to have the other site detect and finish processing any in-flight messages
> from the down site.

There are more factors in this type of design than I'd want to try and cover in 
email. I'm working with a customer now that is starting to run tests on a 
multi-site environment, but their goals and constraints and resources may be 
quite different from yours. I think you've got a good grasp of the facilities 
available (queue dup, federation, clustering) but if you want further in-depth 
help, please let me know.

-Steve


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to