Weighted RoundRobin
For the Weighted RoundRobin routing algorithm, a weight value is assigned to each target operation. The weight value for a target operation specifies a priority for each target operation in a target operation group. You can assign a weight value to each target operation in a target operation group using the Config UI.
When you assign the weight to a target operation, the weight value indicates the capacity of that target operation in comparison to other target operations within the target operation group.
When a client request is forwarded to a target operation group type as Weighted RoundRobin, the Core Engine selects the target operation within the target operations group based on the weight values.
Figure Weighted RoundRobin shows the SG1 target operation group containing three target operations (target operation A, target operation B, and target operation C) with Weighted RoundRobin type. Target operation A is assigned weight value as 5, Target operation B is assigned weight value as 2, and Target operation C is assigned weight value as 3.
When the Core Engine routes any facade request to the SG1 target operation group, the Core Engine processes the request in the following way:
- The first facade request Request 1 is forwarded to target operation A as that has the maximum weight 5.
- The second facade request Request 2 is forwarded to target operation A.
- The third facade request Request 3 is forwarded to target operation A.
- The fourth facade request Request 4 is forwarded to target operation C.
- The fifth facade request Request 5 is forwarded to target operation A.
- The sixth facade request Request 6 is forwarded to target operation B.
Scheduling Pattern
The Core Engine uses the scheduling pattern as follows for the Weighted RoundRobin algorithm type:
(Target Operation A, Target Operation A, Target Operation A, Target Operation C, Target Operation A, Target Operation B, Target Operation C, and so on.)
If the selected target operation is not running or times out to process the facade request, the Core Engine processes the request as follows: