由于碎片可以位于完全不同的服务器上(通常是),而不是如您的示例中所示,所有碎片都位于同一组三个节点上,是的,对于所有碎片,可以有不同的领导者。
选举过程在
Shards and indexing in SolrCloud
.
在索尔克鲁德没有主人或奴隶。相反,每个碎片至少由一个物理副本组成,其中一个副本就是一个领导者。领导者是自动选出的,最初是先到先得的,然后是根据动物园管理员的流程,如
https://zookeeper.apache.org/doc/r3.1.2/recipes.html#sc_leaderElection
.
从上面的url引用:
使用zookeeper进行领导人选举的一个简单方法是,在创建代表客户“建议”的znode时使用序列短暂标志。这个想法是有一个znode,比如说“/election”,这样每个znode创建一个子znode“/election/n”和两个flags序列ephemeral。使用sequence标志,zookeeper会自动附加一个序列号,该序列号比以前附加到“/election”子级的任何序列号都大。创建附加序列号最小的znode的进程是leader。
在你的情况下,同一个节点是第一个在所有情况下响应的(并且可能是你提交给创建请求的一个),因此,被选为最初的领导者。