Clustered server deployments
For large companies, clustered server deployments where several Spotfire Servers share a database and work together to carry out the server tasks provide many benefits.
- Failover protection if a server goes down.
- Scalability for the growing organization.
- Better performance in a system that handles a high volume of work.
Clustering is enabled by default in Spotfire Server.
You must have at least one working Spotfire Server before you configure the cluster.
Configuration
Usually, a load balancer is added to the clustered deployment, in front of the servers, to help to distribute the workload. However, this is not mandatory.
If you choose to use a load balancer, it must support session affinity; this means that after a session has been established, the load balancer continues to route all requests from a particular client to a particular server. To be able to analyze streaming data in web clients, the load balancer must support WebSockets from the web client to the Spotfire Servers.

A cluster may also contain multiple Spotfire Servers that can be accessed individually through their URLs, but share the same set of node managers.
Apache Ignite
Clustering is implemented using Apache Ignite. Apache Ignite clustering requires no manual configuration. It provides TLS version 1.2 for communication and a fast clustering solution. In addition, it looks for specific nodes by using their IP address, rather than discovering any node that communicates using multicasting.
PortsBy default, Apache Ignite uses these three ports:
- 5701 (this base value is configurable)
- 5702 (base value + 1)
- 5703 (base value +2)
For information about properties in Spotfire Server that you can use for fine-tuning or troubleshooting Apache Ignite, see Apache Ignite troubleshooting and tuning.
Multiple network interfaces
If there are multiple network interfaces, and at least one of these network interfaces is not reachable from all the nodes and servers in the cluster, you must configure each server and node manager to use a specific address/network interface.
For the Spotfire servers, you must specify which address/network interface the server must use by setting the addresses property during server configuration. See Creating the bootstrap.xml file. You can also use the set-addresses command to set the correct address/network interface for the servers. See set-addresses.
For the node managers, you must specify which address/network interface to use when you install each node manager. For a Windows node manager, this is set on the Network Names page of an interactive installation, or the NODEMANAGER_HOST_NAMES in a silent installation. For a Linux node manager, set the NODEMANAGER_HOST_NAMES in the post-installation script.
Session clustering (for failover)
Session clustering enables users to continue their work without interruption even if a server goes down or must be restarted.
The sessions are stored in a shared in-memory store, so there must be at least one additional server online (within the same site) for the session to be kept. Note that there is no persistent storage available, so if all servers in a site are restarted at the same time, then the sessions will be lost.
The end-user will normally not notice that a session is handed over to another server, with the following exceptions:
- If the user had an ongoing execution of an information link on the server that went down.
- If the user was saving to or opening anything from the library on the server that went down.
- If an administrator user was deploying packages (using the Deployment & Packages app).
clustering.session-clustering.enabled
configuration
property to false (the default is true), using the
set-config-prop command:
config export-config --force
config set-config-prop -n clustering.session-clustering.enabled -v false
config import-config -c "Disabled session clustering"
Upgrading
Upgrading to a new version of Spotfire Server automatically switches any existing clusters to Apache Ignite clustering, if the old server environment was based on an earlier solution.
- Setting up a cluster of Spotfire Servers
Setting up a Spotfire Server cluster is easier by adding new Spotfire Servers to the environment. Make sure to read the all the steps before you start. - Configuring NTLM for a cluster of Spotfire Servers
To configure NTLM for clustered servers, first set the options common to all the servers and then set the server-specific options. - Kerberos authentication for clustered servers with load balancer
In a clustered environment where Kerberos authentication is used to authenticate users, the load balancer forwards all Kerberos authentication information to the Spotfire Servers. No configuration on the load balancer is needed, but there are certain considerations to take into account when Kerberos authentication is set up. - X.509 client certificates for clustered servers with load balancer
When using X.509 client certificate authentication in a clustered environment, the clients see the load balancer as the server. The load balancer must therefore be provided and configured with a server certificate and its private key. - Terminating TLS in a load balancer or reverse proxy
If HTTPS is enabled on the Spotfire Server, then this results in a number of behavior changes, including that HTTP session cookies are marked as secure. However, it is also possible to configure a load balancer or reverse-proxy with HTTPS, and use plain HTTP between the load balancer and the Spotfire Server. - Streaming and WebSockets for load balanced servers
The WebSocket connections may be closed prematurely when using a load balancer in front of a Spotfire Server cluster, depending on the load balancer's idle connection timeout. In that case, either the load balancer's timeout setting or the Spotfire Server heartbeat settings must be adjusted. - Enabling health check URL for load balanced servers
When using a load balancer in front of a cluster of Spotfire Servers, a health check URL can be set up to show the status of the servers. - Configuring shared import and export directory for clustered deployments
The library administrator can import and export the contents of a library folder from the Library Administration tool in Spotfire Analyst. The import and export files are stored in a directory specified in the Spotfire Server configuration. In a clustered environment, where the client could be communicating with any of the servers, configure a common shared directory.
- Setting up a cluster of Spotfire Servers
Setting up a Spotfire Server cluster is easier by adding new Spotfire Servers to the environment. Make sure to read the all the steps before you start. - Configuring NTLM for a cluster of Spotfire Servers
To configure NTLM for clustered servers, first set the options common to all the servers and then set the server-specific options. - Kerberos authentication for clustered servers with load balancer
In a clustered environment where Kerberos authentication is used to authenticate users, the load balancer forwards all Kerberos authentication information to the Spotfire Servers. No configuration on the load balancer is needed, but there are certain considerations to take into account when Kerberos authentication is set up. - X.509 client certificates for clustered servers with load balancer
When using X.509 client certificate authentication in a clustered environment, the clients see the load balancer as the server. The load balancer must therefore be provided and configured with a server certificate and its private key. - Terminating TLS in a load balancer or reverse proxy
If HTTPS is enabled on the Spotfire Server, then this results in a number of behavior changes, including that HTTP session cookies are marked as secure. However, it is also possible to configure a load balancer or reverse-proxy with HTTPS, and use plain HTTP between the load balancer and the Spotfire Server. - Streaming and WebSockets for load balanced servers
The WebSocket connections may be closed prematurely when using a load balancer in front of a Spotfire Server cluster, depending on the load balancer's idle connection timeout. In that case, either the load balancer's timeout setting or the Spotfire Server heartbeat settings must be adjusted. - Enabling health check URL for load balanced servers
When using a load balancer in front of a cluster of Spotfire Servers, a health check URL can be set up to show the status of the servers. - Configuring shared import and export directory for clustered deployments
The library administrator can import and export the contents of a library folder from the Library Administration tool in Spotfire Analyst. The import and export files are stored in a directory specified in the Spotfire Server configuration. In a clustered environment, where the client could be communicating with any of the servers, configure a common shared directory.