To use search across more than one server, you should create a Solr master/slave configuration using Solr Replication. (For more information on this, refer to the Solr documentation.) In this setup, reads can happen from any search server, but writes must be done on the master server. The way to ensure this is that the Job Service interacts directly with the master server, whereas Telligent Community can access any of the search servers through a load balancer.
With two search servers, there are two options (which are equivalent if you only have one community search):
The first setup alternative is:
- Server A - Contains master node for all Solr instances
- Server B - All Solr instances are slaves of masters on Server A
Note that in this setup, you will need to use a weighted load-balancing algorithm on your load balancer because the master servers have more traffic to deal with given that the Job Service always interacts with the master node.
Second setup alternative:
- Server A - Contains master Solr instances for half of your communities and slaves for the other.
- Server B - Contains master Solr instances for half of communities with slaves on Server A; contains slave Solr instances for instances with masters on Server A.
With more than two search servers, you can choose whether or not to include the master server in the load balancer used by the community to access the search index. By including the master, you need to pay careful attention to the load-balancing algorithm used by the load balancer to ensure that it sends more traffic to each of the slaves than to the master. It weights the traffic to the slaves to compensate for the fact that the master naturally has a higher load due to Job Service interacts.