[esb-java-user] Loadbalancing with clusteraware stickiness (session affinity)

Afkham Azeez azeez at wso2.com
Fri May 9 04:27:47 PDT 2008


Hubert, Eric wrote:
> Hi all,
> 
> today we tried a simple test regarding load balancing with clusteraware
> stickiness (session affinity) which did not work (this is related to
> JIRA https://wso2.org/jira/browse/ESBJAVA-439).
> 
> Before I try to reopen that JIRA or create a new one linked to that, I
> would like to ask a few questions about clustering configuration. Where
> can I find information about how to properly configure clustering.
> 
> I found nothing in the WSO2-land, only a page within the Axis2
> documentation, which seems to fit but does not explain the details:
> http://ws.apache.org/axis2/1_3/clustering-guide.html#stateful%20Web%20Se
> rvices
> 
Please see http://wso2.org/project/wsas/java/2.2.1/docs/wsas-clustering.html

> What shall I do to activate clustering support for WSO2 ESB? Is it
> sufficient to uncomment the configuration section about clustering in
> Axis2.xml of all nodes? This is what we actually did.
> 
Generally this is sufficient provided that multicasting is enabled on 
your network.

> How does clustering work internally? I could not see any multicast
> configuration or something like that. 
> 
We use the Apache Tribes 
(http://tomcat.apache.org/tomcat-6.0-doc/tribes/introduction.html) group 
communication framework for clustering. This is the same GCF used in 
Tomcat, and is quite similar to JGroups. Membership discovery & 
management is based on multicasting, so it is essential that 
multicasting is allowed on your network. You do not have to configure 
the multicast address. Tribes will figure it out. In order to have 
multiple groups, you need to provide different "domain" entries in the 
axis2.xml file for the nodes belonging to the different groups. When it 
comes to sending messages to the cluster, TCP connections are used.

The NW interface to which the clustered node should be bound to can be 
provided by specifying the "axis2.local.ip.address" System property. 
e.g. if you have two interfaces with IPs 192.168.1.23 & 192.168.1.50, 
and want to bind the node to the first interface, you can point the 
axis2.local.ip.address system property to 192.168.1.23. There is another 
way the same thing can be achieved; edit the /etc/hosts file and point 
the entry with you machines name to the required IP address.

> According to the comments in the JIRA our configuration should work, as
> we use named endpoints. Please find attached our synapse configuration
> file.
> 
> If we don't miss any configuration step, I will open a new JIRA issue.
> Please let me know how to proceed with this!
> 
> Regards,
>    Eric

Please ping us if you have any more issues.

HTH
Azeez



More information about the Esb-java-user mailing list