我有一个运行 3 个实例的 Zookeeper 合奏,还有一个带有一些 solr 实例的 solrcloud 集群。我创建了一个设置为 2 个分片的集合。然后我:
create 1 core on instance1
create 1 core on instance2
create 1 core on instance1
create 1 core on instance2
只要有这个配置:
instance1: shard1_leader, shard2_replica
instance2: shard1_replica, shard2_leader
如果我将 2 个核心添加到实例 1,然后将 2 个核心添加到实例 2,则两个领导者都将在实例 1 上,并且不会进行重新选举。
instance1: shard1_leader, shard2_leader
instance2: shard1_replica, shard2_replica
回到我的理想场景(分离的领导者),当我添加具有 2 个副本的第三个实例并杀死我的一个运行领导者的实例时,选举会选择已经拥有领导者的实例。
我的问题是为什么 Zookeeper 会采取这种行为。它不应该分配领导者吗?如果我给双主实例带来一些压力,Zookeeper 会进行选举吗?