Load-balance Group
The Load-balanced Group distributes the messages (load) arriving at it among a set of listed endpoints or static members by evaluating the load balancing policy and other relevant parameters.
XML Configuration
Note
You can configure the Load-balance endpoint using XML. Click on the Switch to source view link in the Load Balance Group page.
The syntax of the load balance endpoint is as follows.
<session type="http|simpleClientSession"/>? <loadBalance [policy="roundRobin"] [algorithm="impl of org.apache.synapse.endpoints.algorithms.LoadbalanceAlgorithm"] [failover="true|false"]> <endpoint .../>+ <member hostName="host" [httpPort="port"] [httpsPort="port2"]>+ </loadBalance>
The Load-balance attributes and elements:
- The
policy
attribute of the load balance element specifies the load balance policy (algorithm) to be used for selecting the target endpoint or static member.
Tip
Currently only the roundRobin
policy is supported.
- The
failover
attribute determines if the next endpoint or static member should be selected once the currently selected endpoint or static member has failed, and defaults to true.
- The
loadBalance
element allows to list the set of endpoints or static members among which the load has to be distributed. These endpoints can belong to any endpoint type (see Address Endpoint, WSDL Endpoint, Default Endpoint,Configuring Failover Endpoints). For example, Failover Endpoints can be listed inside the Load-balance endpoint to load balance between failover groups etc.
Tip
The loadBalance
element cannot have both endpoint and member child elements in the same configuration. In the case of the member child element, the hostName
, httpPort
and/or httpsPort
attributes could be specified.
- The optional
session
element makes the endpoint a session affinity based load balancing endpoint. If it is specified, sessions are bound to endpoints in the first message and all successive messages for those sessions are directed to their associated endpoints.
Tip
Currently there are two types of sessions supported in SAL endpoints. Namely HTTP transport based session which identifies the sessions based on HTTP cookies and the client session which identifies the session by looking at a SOAP header sent by the client with the QName "[http://ws.apache.org/ns/synapse]ClientID"
.
- The
failover
attribute mentioned above is not applicable for session affinity based endpoints and it is always considered as set to false. If it is required to have failover behavior in session affinity based load balance endpoints, list failover endpoints as the target endpoints.
UI Configuration
The following page is opened by clicking Load-balance Endpoint in the Add Endpoint tab of the Manage Endpoints page.
The parameters available to configure a load-balance endpoint are as follows.
Parameter Name | Description |
---|---|
Endpoint Name | This parameter is used to enter a unique name for the endpoint. |
Algorithm | The algorithm on which the load balancing is based. Round Robin is the default algorithm. You can also load a custom algorithm. Instructions for creating a custom algorithm are included in this article. |
Session Management | A session management method from the load balancing group. The possible values are as follows.
|
Session Timeout (Mills) | The number of milliseconds after which the session would time out. |
Add Child | Click this link to add a child endpoint. The required endpoint type can be selected from the list and a section displaying parameters relevant to the selected endpoint type will appear. You can add as many endpoints as required to the load-balance group. See the details of child endpoints in Address Endpoint, WSDL Endpoint, and Configuring Failover Endpoints. |
Add Property | Click this link to add properties to the load-balance endpoint. See Properties Reference for details of the available properties. |