原redis master在哨兵故障转移后复活时的状态
State of the original redis master upon resurrection after sentinel failover
考虑 redis 高可用性解决方案的以下设置:每个 3 个虚拟机 运行 一个 redis 服务器实例和一个用于监视设置的哨兵实例。 R1
(redis on VM1
)配置为主,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
会自动适应吗?
Sentinel 会将旧的 master 转换为新 master 的 slave,除非发生另一次故障转移,否则无需更改任何内容,在这种情况下,这一切都会重复。详细信息在 the sentinel docs,它直接回答了你对 sentinel 的问题。
绝地武士不会在乎老主人重新加入奴隶。
考虑 redis 高可用性解决方案的以下设置:每个 3 个虚拟机 运行 一个 redis 服务器实例和一个用于监视设置的哨兵实例。 R1
(redis on VM1
)配置为主,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
会自动适应吗?
Sentinel 会将旧的 master 转换为新 master 的 slave,除非发生另一次故障转移,否则无需更改任何内容,在这种情况下,这一切都会重复。详细信息在 the sentinel docs,它直接回答了你对 sentinel 的问题。
绝地武士不会在乎老主人重新加入奴隶。