Clustering in Jive

This topic provides an overview of the system that supports clustered installations of Jive.

While they're different services, the clustering and caching systems interoperate. In fact, an application cluster requires the presence of a separate cache server for caching data for use by all application server nodes in the cluster.

For information on installing the application on a cluster, see Setting Up a Cluster.

Parts of the Clustering System

The follow illustration shows the typical cluster configuration. Note that the database server and cache server are separate nodes, but not part of the cluster.

Cluster

The existence of a cluster is defined in the database, which stores the TCP endpoint for each node in the cluster. A node knows it's supposed to be in a cluster because the database it is using shows that clustering is enabled. Nodes in a cluster use the application database to register their presence and locate other nodes. Here's how that works at start up:

  1. When an application server machine starts up, it checks the database to discover the TCP endpoint (IP address and port) it should bind to.
  2. If the node can't find its TCP endpoint in the database (because this is the first time is has started and tried to join a cluster, for example), it will look for the first non-loopback local address it can use. It tries to bind to a default port (7800). If it fails, it will scan up to port 7850 until it finds a port it can bind to. If this fails, the node doesn't join the cluster.
  3. Having established an endpoint for itself, the node notes the other node addresses it found in the database.
  4. The node joins the cluster.

Clustering Best Practices

Here are a few best practice suggestions for clustered installations.

Clustering FAQ

Do all cluster members need to be on the same local network? Yes. It's better for performance.

Is it possible to have more than one cluster per physical network? You can have two deployments (i.e., CommunityA and CommunityB) on the same physical network operating as two clusters. You cannot have a single deployment (i.e., CommunityA) separated into two clusters.

How do configuration files work in a cluster? All configuration data (except bootstrap information such as database connection information) is stored in the database. Changing configuration settings on one cluster member will automatically update them on all other cluster members.

Can I set a cluster node's TCP endpoint to a particular value? Yes. If you have an address and port you want to force a node to bind to, you can do that by setting those values in the Admin Console. If you do that, the node will try that address and port only; it won't scan for an address and port if the one you specify fails. For more information, see Configuring a Cluster Node.

How will I know if a cluster node has failed or can't be found by the cluster? The Cluster page in the Admin Console displays a list of nodes in the cluster. See Configuring a Cluster Node for more information.