哨兵的作用
在redis分布式中,当主节点出现故障时,redis sentinel能自动完成故障发现和故障转移,并通知应用方,从而实现高可用
高可用的原理
每个sentinel节点会对数据节点和其他sentinel节点进行监控,当它发现节点不可达时,会对节点做下线标识。如果被标识的是主节点,它还会和其他sentinel节点进行“协商”,当大多数sentinel节点都认为主节点不可达时,他们会选举出一个sentinel节点来完成自动故障转移的工作,同时会将这个变化实时通知给redis应用方
部署sentinel
1.增加配置文件 redis-sentinel-26379.conf
port 26379
daemonize yes
logfile "26379.log"
dir /opt/soft/redis/data
sentinel monitor mymaster 127.0.01 6379 2
sentinel down-after-milliseconds my master 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
2.启动
启动的方法有两种
方法一
redis-sentinel redis-sentinel-26379.conf
方法二
redis-server redis-sentinel-26379.conf --sentinel
配置项解析
sentinel monitor <master-name> <ip> <port> <quorum>
本配置说明sentinel节点要监控的是一个名字叫做<master-name>,ip地址和端口为<IP><PORT>的主节点,<QUORUM>代表要判定主节点最终不可达所需要的票数
sentinel down-after-millseconds <master-name> <times>
每个sentinel节点都要通过定期发送ping命令来判断redis数据节点和其余sentinal节点是否可达,如果超过了down-after-millseconds配置的时间且没有有效的恢复,则判定节点不可达。<times>单位是毫秒,注意的地方:down-after-millseconds虽然以<master-name>为参数,但实际上对sentinel节点,主节点,从节点的失败判定同时有效
sentinel parallel-syncs <master-name> <nums>
paralllel-syncs用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数,如果这个参数配置的比较大,那么多个从节点会向新的主节点发起复制操作,尽管复制操作通常不会阻塞主节点,但是同时向主节点发起复制,必然会对主节点所在的机器造成一定的网络和磁盘io开销
sentinel failover-timeout <master-name> <times>
故障转移超时时间,作用于故障转移的各个阶段
sentinel auth-pass <master-name> <password>
如果sentinel监控的主节点配置了密码,sentinel auth-pass配置通过增加主节点的密码,防止sentinel节点对主节点无法监控
本文围绕Redis Sentinel展开,介绍其在Redis分布式中实现高可用的作用,即自动完成故障发现和转移并通知应用方。阐述了高可用原理,包括节点监控、下线标识及故障转移选举。还给出部署方法,如增加配置文件和两种启动方式,并对关键配置项进行了解析。
937

被折叠的 条评论
为什么被折叠?



