我已经设置了Solr 7.4集群,其中包含3个节点和3个副本以及一个具有5个分片的集合
我添加了一个名为 posts
的集合(包含5个分片和3个副本),默认情况下,其所有分片的首字母为196.209.182.40
每个分片具有不同的节点作为领导者是否合适?
例如:
为什么Solr会选择所有领导人?
答案 0 :(得分:2)
由于分片可以位于完全不同的服务器上(并且通常位于),而不是如示例中所示,所有分片都位于同一组的三个节点上,因此,所有分片可以有不同的领导者。 / p>
Shards and indexing in SolrCloud中描述了选举过程。
在SolrCloud中,没有主服务器或从属服务器。相反,每个分片都至少包含一个物理副本,正好是其中的一个副本。负责人是自动选出的,首先以先到先得的方式选出,然后根据https://zookeeper.apache.org/doc/r3.1.2/recipes.html#sc_leaderElection中所述的ZooKeeper流程进行选拔。
从上面的URL引用:
使用ZooKeeper进行领导者选举的一种简单方法是在创建表示客户端“建议”的znode时使用SEQUENCE | EPHEMERAL标志。这个想法是要有一个znode,例如“ / election”,以便每个znode创建一个带有两个标志SEQUENCE | EPHEMERAL的子znode“ / election / n_”。使用序列标志,ZooKeeper会自动附加一个序列号,该序列号大于先前附加到“ / election”子代的任何序列号。创建带有最小附加序列号的znode的过程是leader。
在您的情况下,相同的节点是所有情况下第一个响应的对象(可能是您向其提交创建请求的节点),因此被选为原始领导者。