egress load balancer

Egress Load Balancer

Version: 17.07

Supported Since: 17.01

What is Egress Load Balancer?

Egress Load Balancer processing element can be used to configure a load balancing strategy with a fail-over mechanism as well. The Egress Load Balancer supports 8 load balancing/failover strategies as described below.

1. Single

As shown in below diagram, this is the simplest form of load balancing, all the messages which goes through the Egress Load Balancer processing element is directed to a single Egress Connector. Even though you can specify multiple Egress Connectors, the message will be always sent to the first Egress Connector only.

egress load balancer 1
Figure 1: Single endpoint
2. Round-Robin

As depicted in below diagram, for the round-robin load balancing strategy, you can specify multiple egress connectors and those connectors do not have to be of the same type as well. When the Egress Load Balancer receives a message it will send that message to Egress Connector (a), and the next message to (b) and the next one to (c) and the next one to the Egress Connector (a) once again and so on.

Suppose that sending message via Egress Connector (b) fails. In that case for that particular message the message flow will be marked as failed and the next message received by the Egress Load Balancer will be sent to the Egress Connector (c)

egress load balancer 2
Figure 2: Multiple endpoints with Round-Robbin
3. Round-Robbin with Fail-over

This strategy is similar to Round-Robbin one. Further, this includes a fail-over mechanism as well. i.e. when the Egress Load Balancer receives a message it will first send it to Egress Connector (a), and the next message to (b) and so on, but on a failure, it will try to send the message to the next Egress Connector.

Assume a particular message fails when send via Egress Connector (b), then the Egress Load Balancer will not mark that message as a failed one, rather try to send that message to the next Egress Connector (c) in the list. If that end point fails, then that particular message will be sent to the next Egress Connector until sending the message is successful or the Egress Load Balancer reaches the initially failed Egress Connector while looping through the Egress Connector list.

If the Egress Load Balancer reach the initially failed Egress Connector, then only, the message will be marked as a failed one.

4. Fail-Over

In the Fail-over strategy, message received to the Egress Load Balancer is always sent to the first Egress Connector (a). The Message is sent to the next configured Egress Connector (b) only if the first one fails. Similarly message is sent to the the 3rd Egress Connector (c) if the 2nd one fails as well.

This strategy will mark the message as a failed one after trying all the configured Egress Connectors at most once and non of the were successful.

5. Weighted

Weighted strategy uses the weight specified in Egress Connectors to select the Egress Connector where the message should be handed over. As shown in below image three Egress Connectors have 10, 30, 50 specified as their weights respectively, and the corresponding percentage of the weight for each Connector would be 11.11%, 33.33%, 55.55% respectively.

This means that the probability of selecting the Egress Connector (a) is 11.11%, and for Connector (b) it is 33.33% and Connector (c) has the highest probability of being selected, which is 55.55%.

egress load balancer 3
Figure 3: Multiple endpoints with Weighted
6. Weighted with Fail-over

The load balancing mechanism for this strategy is as same as the Weighted one. But when a particular Egress Connector fails, another one will be picked according to the weighted probability and the message will be sent to that Egress Connector. This fail-over mechanism will be tried until the pre-specified Re-try Attempts count is reached.

7. Random

This strategy is similar to the Weighted one, except that the target Egress Connector is selected on a random basis. Hence theoretically, all the Egress Connectors have the same probability of being selected.

8. Random with Fail-over

Random with Fail-over used the load balancing mechanism in the Random one. When a message sent to an Egress Connector fails, another Egress Connector will be selected on a random basis. The maximum re-try count will be the pre-specified Re-try Attempts and after that the message will be marked as a failed one.

In order to use this processing element, you must first select the Flow Control dependency from the processor list when you are creating an empty Ultra project. If you have already created a project, you can add this dependency via Component Registry. From Tools menu, select Ultra Studio → Component Registry and from the Processors list, select the Flow Control dependency.

lb outports

Out Ports

Connectors

The message received to the Egress Load Balancer will be emitted through this port. NOTE: You can ONLY connect Egress Connector Elements to this port

On Exception

The message will be sent to this outport if the processing element fails to process the message due to some reason

Parameters

* marked fields are mandatory

Load Balancing Algorithm *

Basic

The algorithm which should be used to load balance/fail-over which corresponds to the strategies mentioned above

Re-try Attempts

Basic

If the selected algorithm is weighted-with-fail-over or random-with-fail-over, this property is value is used to limit the maximum re-try attempts in fail-over scenario.

Re-try Error Codes

Basic

Comma separated list of error codes which is safe to re-try in fail-over scenario

Sample Use Case

In this sample Use case, Let’s see how we can configure HTTP Egress Connectors with Round-Robbin with Fail-over strategy. First, let’s create a our flow as shown below

I have added a Logger Element to log the incoming payload and as for the "Load Balancing Algorithm" of the Egress Load Balancer select round-robbin-with-fail-over and save the configuration As for the egress connectors, the backend URLs used are shown in below diagram

egress load balancer 4
Figure 4: Round-Robbin with Fail-over for HTTP Egress Connectors

Now after creating a run configuration [link to creating a run configuration] and running the project, you will be able to see that each message is sent to the corresponding backend according tot he round-robbin algorithm.

In this topic
In this topic
Contact Us