The Load Balancer

A load balancer must be used in front of the cluster in order to divide the load among the cluster nodes.
The load balancer used must support (and be configured to use) sticky sessions/session affinity.

You can use any kind of load balancer - hardware, software, round-robin DNS, etc.
The load balancer should provide it's services using the same cluster/network alias you configure in IFS Installer, i.e. clients should connect to the cluster using the hostname and port you specify during installation.

Load Balancer

A Load Balancer is required for all middle tier High End scenarios.

Why use Load Balancing?

There are two main reasons for using load balancing

  1. Scalability: A single server cannot handle the load from all users in larger installations
  2. High Availability: Redundancy

Load Balancing Hardware/Software

You can load balance using either dedicated hardware or using software. The "cheapest" solution is to use Round Robin DNS, but that solution does not take into consideration if a node is available or not. For a very simple solution, using only a single web server, you can also let Apache (mod_proxy) do the load balancing for you. The IFS Installer creates a configuration file for this type of load balancing.

Requirements

The load balancer must implement sticky sessions (session affinity).

Limitations

Load balancing of IFS Connect Server is possible only for File Reader.
Even if it is possible to run multiple instances of IFS Connect Server, as described here, only the File Reader supports multiple reads from the same source file repository. Several IFS Connect Server instances can then read from the same repository (note however that all IFS Connect Servers must have write access to the repository).
But the file repository will be then a single point of failure anyway.

Load Balancer with IFS Middleware Server

Read more about Load Balancer with IFS Middleware Server

Apache Web Server as Load Balancer with JBoss

The diagram below shows a principle configuration of a cluster build upon two JBoss nodes with an arbitrary load balancer.

 

As mentioned previously an Apache 2 Web Server can be used as a load balancer. We recommend using a dedicated machine for load balancer, even if it is possible to use Apache installation located on one of the nodes.
The diagram below shows the simplest possible cluster configuration using Apache 2 as load balancer located on a node machine:

 
Note however that in such configuration there is a risk for port conflicts between Apache 2 Web Server and JBoss Web Server listening on the same port. To avoid this type of conflict do not use the suggested default http port number for system URL but change it to something else as described on Web Server Configuration page.

Configuration

The IFS Installer will produce a configuration file that can be used for integration with Apache2 as load balancer using standard module mod_proxy.

  1. Install Apache2 if not already installed.

  2. Copy file http-<path_to_ifs_home>-<instance>.conf located in <ifs_home>/instance/<instance>/conf directory to Apache2 configuration directory (/etc/httpd/conf.d on Red Hat Enterprise Linux 6 or C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra on Windows 2008 R2).

  3. On Windows 2008 R2 add the following line:
    Include conf/extra/http-<path_to_ifs_home>-<instance>.conf
    to Apache configuration file httpd.conf typically located in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf. Of course, put in the real file name.

  4. On Red Hat Enterprise Linux 6 execute the following command:
    /usr/sbin/setsebool httpd_can_network_connect 1
    as user root to grant httpd service network rights.

  5. Restart JBoss nodes.

  6. Restart Apache