在redis的根目录下,可以看到已经有了一个sentinel.conf配置文件,直接修改之:
修改配置文件:
vim sentinel.conf
增加以下内容:注意如有重复内容需要去掉
绑定外网访问权限DNS路由2.2.3 启动哨兵
可以看到,129/130作为从节点已经挂载到了128主节点下了
哨兵测试,将128shutdown,再看日志
主节点已经变成了130了!128再次启动,已经不是主节点了:
bind 0.0.0.0
mymaster 主节点名,可以任意起名,但必须和后面的配置保持一致
2 为需要主服务器断掉时需要2个sentinel同意(sentinel本身也可以集群)
sentinel monitor mymaster 192.168.223.128 6379 2
设置Sentinel认为服务器已经断线所需的毫秒数
sentinel down-after-milliseconds mymaster 10000
设置failover(故障转移)的过期时间。当failover开始后,在此时间内仍然没有触发任何failover
操作,当前 sentinel 会认为此次failover失败
sentinel failover-timeout mymaster 60000
设置在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小,表示
同时进行同步的从服务器越少,那么完成故障转移所需的时间就越长。
sentinel parallel-syncs mymaster 1
启动
把三台redis服务跑起来
./bin/redis-server redis.conf
再启动哨兵进程,哨兵启动需要使用redis-sentinel启动脚本启动
./bin/redis-sentinel sentinel.conf
总结
哨兵模式的优缺点
优点:
1、当Master节点挂掉时,会通过vote算法从Slave节点中选举出一个新的节点作为Master节点继续工
作
2、任何一个数据的增删改都需要Master节点处理,能保障数据的强一致性,符合CAP定理中的CP原则
缺点
1.主从服务器的数据要经常进行主从复制,这样造成性能下降。
2.当主服务器宕机后,从服务器切换成主服务器的那段时间,服务是不可用的,降低了高可用性