3

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?

Community
  • 1
  • 1
metdos
  • 13,411
  • 17
  • 77
  • 120

3 Answers3

4

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...

Prabath Siriwardena
  • 5,891
  • 1
  • 27
  • 34
  • Can you give or point to any example about how to use ESB as load balancer especially where the nodes are continuously added or removed from cluster. – metdos Sep 22 '11 at 12:16
  • 1
    I guess the link you provided is about that http://wso2.org/project/esb/java/4.0.0/docs/samples/endpoint_mediation_samples.html#Sample57 – Prabath Siriwardena Sep 22 '11 at 16:51
  • But I need a load balancer at protocol level, according to reference I guess I need to connect a service to that endpoint. – metdos Sep 28 '11 at 13:39
1

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.

Sumedha
  • 36
  • 1
  • 1
    "LB can be configured to run in a cluster as well." example configuration for this would be great. – metdos Sep 22 '11 at 12:19
0

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

GustavoH
  • 240
  • 2
  • 9