我正在尝试设置一个简单的redis-sentinel
,并将其配置为将主服务器故障转移到其从属服务器之一。
我设置了4个VM(使用virtualbox
),并在每个VM上安装了redis。我有一台主计算机和两个从属计算机。最后一台机器是哨兵。
主服务器和从属服务器具有默认配置,但我将绑定(bind)地址更改为bind 0.0.0.0
,而从属服务器具有slaveof <master-ip> 6379
行。
在前哨中,我遵循了基本教程,并进行了以下设置:
sentinel monitor mymaster <master-ip> 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 6000
sentinel parallel-syncs mymaster 1
问题是,当我关闭主服务器时,哨兵不会提升任何从属服务器。
以下是前哨日志:
1922:X 13 Jun 14:03:53.446 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1922:X 13 Jun 14:03:53.446 # Sentinel ID is dc901c767178ddf8f569c4a17b79df2938342ede
1922:X 13 Jun 14:03:53.446 # +monitor master mymaster <master-ip> 6379 quorum 2
1922:X 13 Jun 14:04:04.595 # +sdown master mymaster <master-ip> 6379
我究竟做错了什么?
最佳答案
愚蠢的错误。
我将quorum
参数设置为2。quorum
参数设置在提升从属服务器之前需要同意主机已关闭的哨兵数量。我只有一个哨兵,所以没有奴隶晋升。