Skip to main content
Version: 3.14.x.x LTS

Fail-safety and load balancing

Most of the nevisProxy's connector servlets (i.e. clients, connecting to content providers) support failsafeness and load balancing. To provide failsafeness, multiple resources (content providers on different hosts) providing the same service are required. For load balancing, additional policies to decide upon load distribution to detect resource failures and to perform recovery.

nevisProxy provides failsafeness to an 'unlimited' cluster of content providers and uses the following default load balancing policiesother policies available on request:

  • Load distribution: round-robin (stateless or session sticky)
  • Recovery: periodical, synchronous retries
ConnectorConfiguration AttributeError ConditionLoad Metric
Http(s)ConnectorServletInetAddress see the table "HttpConnectorServlet configuration"No TCP/IP connection could be established or the backend returns a status code, configured with 'DisableBindingStatusCode'.Number of requests sent to a resource.
EsAuth4ConnectorServletAuthenticationService SessionService see the table "HttpsConnectorServlet configurationSOAP: The same error conditions as for the Http(s)ConnectorServlet apply.Number of sessions bound to a resource.

Primary resource

For the respective attribute, a whitespace-separated list of resources can be configured. The first resource in that list is called the primary resource. In the following, we assume that there are at least two resources configured. Furthermore, it is required that all resources implement the same service.

Load

The meaning of 'load' of a resource depends on the implemented service.

ResourceManager

If the client accesses the service (through the reverse proxy), the decision which resource should be taken is handled by the resource manager. If the client accesses the service for the first time, the chosen resource is called 'initial'. In any subsequent access, it will be called 'subsequent'. There are different resource manager implementations listed in [the table] below:

ResourceManagerLoad BalancingInitial ResourceSubsequent Resource
SessionResourceManagerfalseThe primary resource is chosen. If the primary resource cannot be accessed (error condition), the resource with the minimal load is chosen.The initial resource. If that resource cannot be accessed (error condition), the resource with the minimal load is chosen and treated as initial.
trueThe resource with the minimal load is chosenThe initial resource. If that resource cannot be accessed (error condition), the resource with the minimal load is chosen and treated as initial.
StatelessResourceManagerfalseround-robinround-robin
trueround-robinround-robin

As an example, we consider two different situations for enabled load balancing:

  • The StatelessResourceManager should be configured if the content provider serves static HTML pages or provides stateless web services.
  • The SessionResourceManager (default) is used to access stateful content providers like stateful J2EE applications.

See the chapter Configuring fail-safety and load balancing to content providers for examples.

For a description of the connector servlets, see the chapter FakeLoginFilter.