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.
A Load Balancer is required for all middle tier High End scenarios.
There are two main reasons for using load balancing
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.
The load balancer must implement sticky sessions (session affinity).
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.
Read more about Load Balancer with IFS Middleware Server
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.
The IFS Installer will produce a configuration file that can be used for integration with Apache2 as load balancer using standard module mod_proxy.
Install Apache2 if not already installed.
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).
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.
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.
Restart JBoss nodes.
Restart Apache