考虑redis高可用性解决方案的以下设置:3个VM,每个运行一个redis服务器实例,一个Sentinel实例来监控设置。 R1
(VM1
上的redis)被配置为主R2
和R3
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
会自动适应吗?答案 0 :(得分:1)
Sentinel会将旧主服务器转换为新主服务器的从服务器,除非发生其他故障转移,否则不需要更改任何故障转移。详细信息位于the sentinel docs,可以直接回答您的哨兵问题。
杰迪斯不需要关心作为奴隶重新加入的老主人。