Configuring the Cache Servers for High-Availability
In a multiple data center HA configuration, there are special requirements for handling the cache servers.
Every Jive deployment larger than a single node is going to require at least a single node to provide caching services. Within a single data center, high availability can be achieved through the use of three or more cache servers (two cache servers within a single data center is not supported and can cause data loss), all of which you configure via the Admin Console.
If you are implementing an HA caching configuration with Jive, you must use three or more cache servers. Two are not supported. This is because each cache PUT operation must succeed on two different cache servers. Therefore, be aware that HA implementations may result in significant performance issues to accommodate successful writes across multiple cache servers.
Use jive set cache.hostnames list_of_hostnames to set the cache machine addresses. You can use the comma separated list of IP addresses or domain names, but be consistent with the format (use IP addresses or domain names, but not both) and order you use. This list should be the same on all cache servers, and well as in the Admin Console. For more on setting up cache servers, see Adding a Cache Server Machine.
Install the cache server on a machine separate from the web application nodes in the cluster. The cache server is available to all the web app nodes in the cluster (in fact, you can't create a cluster without declaring the address of a cache server). For more information about how caching works in the application, be sure to read In-memory Caching.
Setting Up the Connection String
The application requires you to add a DNS name or IP address for every cache server deployed with the application. You set this connection string via the Admin Console: Restoring the Database With Persistent Properties.. This string is then stored in the core application databases. For more on what must be persisted in the core application database during a disaster recovery, see
Because the web application nodes require low latency, the web application nodes must not make cache requests across geographically-distributed data centers. To deal with this in a multiple data center HA configuration, you need to correctly set up the DNS name or IP address of the cache server(s). Here's how you do that:
- If a DNS name is used to specify the location of the cache server(s) (this is the preferred method), the name(s) must resolve to a cache server short name on the web application nodes in each respective data center. Using the web node names from the example above, but substituting a DNS short name ex:(cache01) in the configuration instead of an IP address, the DNS name must resolve to the cache server cache01-dcA.example.com when requested by either wa01-dcA.example.com or wa02-dcA.example.com, and must resolve to cache01-dcB.example.com when requested by either of the web application nodes wa01-dcB.example.com or wa02-dcB.example.com.
- If an IP address is used to specify the location of the cache server(s), it must be a virtual IP address that resolves to a cache server in the local data center. For example, given web application nodes wa01-dcA.example.com and wa02-dcA.example.com, both in data center A, and web application nodes wa01-dcB.example.com and wa02-dcB.example.com in data center B, all pointing to the virtual IP address 172.16.100.3 in the Admin Console cache server configuration page, the IP address must resolve to the cache server cache01-dcA.example.com when requested by either wa01-dcA.example.com or wa02-dcA.example.com, and must resolve to cache01-dcB.example.com when requested by either of the web application nodes wa01-dcB.example.com or wa02-dcB.example.com.