Load Balancer
Axon Ivy Engine Clusters work with sticky sessions. This means that the load balancer must forward all requests from a session to the same cluster node. Of course if a cluster node is no longer available then the request can be sent to another cluster node. Note that this will cause the user to receive a new session, therefore losing his current work.
As described above, the load balancer must ensure that all requests from the same
user session is forwarded to the same cluster node. This can be done by
configuring the load balancer in such a way that all requests sent from one client IP address
is always forwarded to the same cluster node (IP based stickiness). Another
possible configuration is to use the Axon Ivy Session Id to provide session
stickiness. The session id is provided by Axon Ivy Engine Enterprise Edition as a
HTTP session cookie with the name JSESSIONID
.
Often Reverse Proxies can be configured as load balancers.
HAProxy
HAProxy is a free, fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is very easy to setup and also offers a Docker image that only needs minimal configuration.
We provide a sample on GitHub how to setup an Axon Ivy Engine Cluster using HAProxy as the load balancer within docker-compose.
NGINX
NGINX is a free, open source HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server with load balancing features. It also offers a Docker image with minimal configuration needs.
We provide a sample on GitHub on how to setup an Axon Ivy Engine Cluster using NGINX as the load balancer within docker-compose.