考虑以下用于 redis 高可用性解决方案的设置:3 个 VM,每个 VM 运行一个 redis 服务器实例和一个哨兵实例来监控设置。R1
(redis on VM1
) 被配置为 master,R2
并且R3
as slaveof R1
; S1
... S3
(哨兵)所有监视器R1
的法定人数为 2。所有这些都静态写入相应的虚拟机中redis.conf
和上。redis-sentinel.conf
现在考虑VM1
(携带R1
和S1
)下降。哨兵选择例如R2
新的主人和客户端代码jedis
,自动适应新的状态。到目前为止,一切都很好。
VM1
当恢复并R1
可用S1
时究竟会发生什么?
尤其是:
- 是否会
R1
加入其余的R2
并R3
再次形成一个 3 节点设置(例如,因为S2
并S3
继续监视它)? - 如果是,会
R1
被选回主人还是继续做奴隶?我应该关心吗? - 是否会再次
S1
加入S2
并S3
形成 3 节点设置? - 会
jedis
自动适应吗?