美文网首页redis学习
Redis Sentinel----哨兵机制的使用姿势

Redis Sentinel----哨兵机制的使用姿势

作者: 奔跑的Robi | 来源:发表于2019-08-21 22:10 被阅读0次

背景

使用主从复制是使redis达到高可用的前提,但是如果主节点真的宕机了,从节点升为主节点,需要修改应用方的主节点地址,还要所有的从节点再重新连接新的主节点,这一系列操作如果手工去执行的话是不科学的。所以Sentinel就很好的解决了这个问题。

Sentinel高可用原理

Sentinel中文叫哨兵,顾名思义是独立于节点服务器之外的监控节点,每个Sentinel节点会对所有的数据节点进行监控,当发现节点断开连接时,会对节点加下划线标识。如果标识的是主节点,那么Sentinel会跟其他的Sentinel节点协商,当大多数的哨兵节点都认为主节点不可达时,就选举出一个Sentinel节点去完成故障转移工作。同时将这个变化通知给redis的应用方。

基本操作

先上一张架构图


image.png

部署1主2从节点

首先配置好一主多从的机制,主从配置的过程参考上一篇文章主从复制的使用姿势

部署Sentinel节点

redis配置文件中sentinel.conf是独立的配置文件,基本配置如下,配置三台,端口不同就好

// Sentinel节点的端口
port 26379  
dir /var/redis/data/
logfile "26379.log"

// 当前Sentinel节点监控 127.0.0.1:6379 这个主节点
// 2代表判断主节点失败至少需要2个Sentinel节点节点同意
// mymaster是主节点的别名
sentinel monitor mymaster 127.0.0.1 6379 2

//每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒且没有回复,则判定不可达
sentinel down-after-milliseconds mymaster 30000

//当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel parallel-syncs mymaster 1

//故障转移超时时间为180000毫秒
sentinel failover-timeout mymaster 180000

启动sentinel可以有两种方式:

  • redis-sentinel redis-sentinel.conf
  • redis-server redis-sentinel.conf --sentinel
    三个节点部署后结构如下所示


    image.png

现在到主节点上shutdown,关闭主节点服务器,可以看到在30秒后,sentinel监控的主节点变更


image.png
image.png

相关文章

网友评论

    本文标题:Redis Sentinel----哨兵机制的使用姿势

    本文链接:https://www.haomeiwen.com/subject/iwmbsctx.html