On 9/12/18 8:21 PM, Shawn Heisey wrote: > On 9/12/2018 7:38 AM, Gu, Steve (CDC/OD/OADS) (CTR) wrote: >> I am upgrading our solr to 7.4 and would like to set up solrcloud for >> failover and load balance. There are three zookeeper servers >> (zk1:2181, zk1:2182) and two solr instance solr1:8983, solr2:8983. So >> what will be the solr url should the client to use for access? Will >> it be solr1:8983, the leader? >> >> If we use solr1:8983 to access solr, what happens if solr1:8983 is >> down? Will the request be routed to solr2:8983 via the zookeeper? I >> understand that zookeeper is doing all the coordination works but >> wanted to understand how this works. > > Zookeeper does not handle Solr requests. It doesn't know anything at > all about Solr. It is Solr that uses ZK to coordinate the cluster. > > If you are using the Java client called CloudSolrClient, then you will > most likely be informing it about ZK, not Solr, and it will > automatically determine what Solr servers there are by talking to ZK, > and then will talk directly to the correct Solr servers. If you are not > using a client that is ZK-aware, then you will need a load balancer > sitting in front of your Solr servers. Don't put a load balancer in > front of ZooKeeper. Your clients will then talk to the load balancer.
The advantage over haproxy/nginx/... solutions is, that a client, that is using zookeeper, registers at zookeeper and in case a solr node goes down, the solr node may inform zookeeper, which may inform all registered clients. Failover can be much faster with CloudSolrClient than with haproxy or similar solutions. And CloudSolrClient knows which is the leader and when indexing, it routes documents to the leader which avoids overhead. I've written a SolrCloudProxy which can be used to connect non-cloud aware clients to a solr cloud. The proxy uses CloudSolrClient with all its advantages. It is not yet production ready, but you may want to try it: https://gitlab.lrz.de/a2814ad/SolrCloudProxy
signature.asc
Description: OpenPGP digital signature