...
Objective: Demonstrate the weighted load balancing among a set of endpoints.
Code Block | ||||
---|---|---|---|---|
| ||||
<definitions xmlns="http://ws.apache.org/ns/synapse"> <sequence name="main" onError="errorHandler"> <in> <send> <endpoint> <loadbalance algorithm="org.apache.synapse.endpoints.algorithms.WeightedRoundRobin"> <endpoint> <address uri="http://localhost:9001/services/LBService1"> <enableAddressing/> <suspendOnFailure> <initialDuration>20000</initialDuration> <progressionFactor>1.0</progressionFactor> </suspendOnFailure> </address> <property name="loadbalance.weight" value="1"/> </endpoint> <endpoint> <address uri="http://localhost:9002/services/LBService1"> <enableAddressing/> <suspendOnFailure> <initialDuration>20000</initialDuration> <progressionFactor>1.0</progressionFactor> </suspendOnFailure> </address> <property name="loadbalance.weight" value="2"/> </endpoint> <endpoint> <address uri="http://localhost:9003/services/LBService1"> <enableAddressing/> <suspendOnFailure> <initialDuration>20000</initialDuration> <progressionFactor>1.0</progressionFactor> </suspendOnFailure> </address> <property name="loadbalance.weight" value="3"/> </endpoint> </loadbalance> </endpoint> </send> <drop/> </in> <out> <send/> </out> </sequence> <sequence name="errorHandler"> <makefault response="true"> <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/> <reason value="COULDN'T SEND THE MESSAGE TO THE SERVER."/> </makefault> <send/> </sequence> </definitions> |
Prerequisites:
...
- Deploy the
LoadbalanceFailoverService
and start three instances of sample Axis2 server as mentioned in sample 52.
...
Code Block |
---|
[java] Request: 1 ==> Response from server: MyServer1 [java] Request: 2 ==> Response from server: MyServer2 [java] Request: 3 ==> Response from server: MyServer2 [java] Request: 4 ==> Response from server: MyServer3 [java] Request: 5 ==> Response from server: MyServer3 [java] Request: 6 ==> Response from server: MyServer3 [java] Request: 7 ==> Response from server: MyServer1 [java] Request: 8 ==> Response from server: MyServer2 [java] Request: 9 ==> Response from server: MyServer2 [java] Request: 10 ==> Response from server: MyServer3 [java] Request: 11 ==> Response from server: MyServer3 [java] Request: 12 ==> Response from server: MyServer3 ... |
As logs , you see something similar to endpoint with weight 1 received
a 1 request and endpoint with weight 2 received 2 requests
and ,
etc. .. in a cycle
Excerpt | ||
---|---|---|
| ||
Sample on Weighted load balancing between 3 endpoints |
...