[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] Automatic Client failover



David Robison wrote:
What I want to do is to allow the client to detect when the node supporting one of its subscriptions is down and to "move" its subscription to another node. We have developed a plugin that allows a node to send a periodic heart beat. If the client misses the heart beat for a node on which it has subscribed for messages, it then will be able to unsubscribe and then resubscribe, hopefully onto a node that is up. What is missing in XMLBlaster is the ability to give preference to nodes that are up and not just pick any node that supports the data domain. This would need to be done (in my estimation with the little bit I know of the code) in the ClusterManager and the getConnection routine.

Does this seem like a reasonable approach? Should it be possible to make the change in getConnection to give preference to nodes that are "up"? Could it be implemented as a special version of load balancing? Any other ideas?
In ClusterManager.java:822

We have a masterSet of nodes which are available:
NodeDomainInfo nodeDomainInfo = loadBalancer.getClusterNode(masterSet); // Invoke for masterSet.size()==1 as well, the balancer may choose to ignore it


and now the loadBalancer may choose the appropriate, which it does in the plugin RoundRobin.java
which chooses the node with the lowest stratum.
I think here is the place for any more advanced preference logic
or even another plugin,


regards
Marcel




David Robison --

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison at openroadsconsulting.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/bookstore/titles/1597816523.htm