redis基础篇——哨兵机制(Sentinel)

Redis Sentinel提供高可用性,通过监控、通知和故障转移确保Redis服务的稳定性。Sentinel系统由多个Sentinel节点组成,它们互相监控并协调主从切换。当master节点主观下线后,Sentinel节点会进行客观下线判断,通过Raft类似算法选举新master,并重新配置集群。Sentinel还负责通知客户端新的master地址,确保连接的正确性。然而,Sentinel机制在主从切换时可能丢失部分数据,并且不支持水平扩容。
摘要由CSDN通过智能技术生成

哨兵机制(Sentinel)



问题:
怎么实现高可用呢?第一个对于服务端来说,能够实现主从自动切换;第二个,对于客户端来说,如果发生了主从切换,它需要获取最新的master节点。
思路:
创建一台监控服务器来监控所有Redis服务节点的状态,比如,master节点超过一定时间没有给监控服务器发送心跳报文,就把master标记为下线,然后把某一个slave变成master,应用每一次都是从这个监控服务器拿到master的地址。


Sentinel原理


Redis的高可用是通过哨兵Sentinel来保证的。它的思路就是通过运行监控服务器来保证服务的可用性。
我们会启动奇数个的Sentinel的服务(通过src/redis-sentinel)
可以用sentinel的脚本启动,也可以用redis-server的脚本加sentinel参数启动:

./redis-sentinel ../sentinel.conf
#或者
./redis-server ../sentinel.conf --sentinel

它本质上只是一个运行在特殊模式之下的Redis,Sentinel通过info命令得到被监听Redis机器的master,slave等信息。



在这里插入图片描述


为了保证监控服务器的可用性,我们会对Sentinel做集群的部署。Sentinel既监控所有的Redis服务,Sentinel之间也相互监控。
注意:Sentinel本身没有主从之分,地位是平等的,只有Redis服务节点有主从之分。


问题:Sentinel唯一的联系,就是他们监控相同的master,那一个Sentinel节点是怎么知道其他的Sentinle节点存在的呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值