One slight correction. Solr will run perfectly fine with a single ZooKeeper. The recommendation for 3 is that running with a single ZooKeeper creates a single point of failure, i.e. if that node goes down for any reason your Solr cluster won't be able to update anything at all. You can still query, maybe, for a while.
Two ZooKeepers will also run, but as Shawn says that's essentially totally wasting one of them as it doesn't buy you anything and makes your system _less_ robust. FWIW, Erick On Fri, Jan 5, 2018 at 7:57 AM, Shawn Heisey <apa...@elyograg.org> wrote: > On 1/4/2018 9:01 AM, Sundaram, Dinesh wrote: > > Thanks Shawn for your prompt response. Assume I have solrcloud A server > with 1 node runs on 8983 port and solrcloud B server with 1 node runs on > 8983, here I want to synch up the collection between solrcloud A and B > using the below replication handler. Is this advisable to use at the > solrcloud B ? > > > > <requestHandler name="/replication" class="solr.ReplicationHandler" > > > <lst name="slave"> > > <str name="masterUrl">http://solrcloudA:8983/solr/${solr. > core.name}/replication</str> > > <str name="pollInterval">00:00:20</str> > > </lst> > > </requestHandler> > > One of the things I said in my last reply, at the beginning of a > paragraph so it should have been quite prominent, was "you can't mix > master-slave replication and SolrCloud." What part of that was not clear? > > You need to be running standalone mode (not cloud) if you want to use > master-slave replication. > > When things are set up correctly, SolrCloud will automatically keep > multiple replicas in sync, and copy the index to new replicas when they > are created. There is no need to manage it with replication config. > For replicating from one SolrCloud cluster to another, there is CDCR as > Erick described. > > Another thing Erick mentioned: What you actually have when you start > Solr the way you did is two completely independent SolrCloud clusters, > each of which only has one Solr server. Each solr instance is running a > zookeeper server embedded within it. There is no redundancy or fault > tolerance of any kind. > > If you want to run a fault-tolerant SolrCloud, you will need three > separate servers. The smallest possible setup would have both Solr and > ZooKeeper running on two of those servers (as separate processes). The > Solr instances would be started with a -z option (or the ZKHOST > environment variable) to locate the three ZK servers, and without the > -cloud option. The third server, which can be a much smaller system, > would only run ZooKeeper. You may also need a load balancer, depending > on what software your clients are using. > > The requirement of three servers comes from ZooKeeper, not Solr. A > two-server ZK ensemble is actually *less* reliable than a single server, > so it's not recommended. I don't know if they even allow such a setup > to work. > > Thanks, > Shawn > >