3
votes

I want to make a cluster of Data Services Servers(DSS), and use an Enterprise Service Bus (ESB) as load balancer. In this deployment, what is the purpose of having a manager DSS in the cluster, and if there is a manager, is it a single point of failure?

These are the references which I used for load balancing and DSS clustering:

Dynamic load balancing between 3 nodes

How to install WSO2 Carbon cluster management feature?

3

3 Answers

4
votes

The dynamic load balancing mechanism in WSO2 ESB, discovers the DSS members in an application group using a group communication framework and shares the load in runtime.

Load balancer is not bound or coupled to any cluster manager - it will simply distribute the load among nodes in applicationDomain.

So - in runtime - cluster manager doesn't create any single point of failure.

If you want you can setup a DSS cluster even without a cluster manager and distribute the load among the nodes via ESB.

The cluster manager - which is a component installed only to manage your cluster...

1
votes

This is an extension to Prabath's answer.

DSS can be configured to work in a cluster. So that all DSS nodes act as members in a single cluster. This facilitates sharing session among each of the nodes.

Or else, you can have all DSS nodes running in isolation (using the same configuration), fronted by a load balancer (LB). Unlike the previous approach, this method does not support share sessions between DSS nodes. Thus only supports stateless services.

WSO2 ESB can act as a LB. But having a single instance of LB will make it a SPoF. And, LB can be configured to run in a cluster as well.

0
votes

I don't know what's behind the decision of using an ESB instead of an ELB for LB, but it's up to you which one to use.

The manager is not a single point of failure, it's just a way to manage the entire cluster from a single management console (with limitations), and can be configured to be a worker at the same time.

Regarding the LB layer, you can use keepalived to avoid having a SPoF in the ESB acting as a LB, the same way it's done for WSO2 ELB's.

Take a look on that Failover for ELB with keepalived