redis主从 + Sentinel 哨兵模式

2019-11-26  本文已影响0人  魔曦帝天

环境介绍

docker配置redis主从复制(一主两从),启动Sentinel(哨兵模式,3个sentinel)

image.png sentinel管理多个

redis中master配置要点

(要修改的)
bind 0.0.0.0
daemonize yes  # 后台启动

启动:
redis-server [redis配置文件绝对路径]

从服务器配置

修改
bind 0.0.0.0   #允许任何主机
daemonize yes     #允许后台启动redis
slaveof redis-server 6379    # docker网络解析  redis-server

启动:
redis-server [redis 配置文件绝对路径]
如法炮制创建两个从服务器

Redis Sentinel的主要功能

Sentinel 的主要功能包括 主节点存活检测、主从运行情况检测、
自动故障转移 (failover)主从切换。Redis 的 Sentinel 最小配置是 一主一从

主观下线和客观下线

主观下线

适用于所有 主节点 和 从节点。如果在 down-after-milliseconds 毫秒内,Sentinel 没有收到 目标节点 的有效回复,则会判定 该节点 为 主观下线。(偏见,需要其他sentinel的观点)

客观下线

客观下线 只适用于 主节点。如果 主节点 出现故障,Sentinel 节点会通过 sentinel is-master-down-by-addr命令,向其它 Sentinel 节点询问对该节点的 状态判断。如果超过 <quorum> 个数的节点判定 主节点 不可达,则该 Sentinel 节点会判断 主节点 为 客观下线

Redis Sentinel的工作原理

配置sentinel哨兵

vi /etc/redis-sentinel.conf

protected-mode yes      
bind 0.0.0.0
daemonize yes
sentinel monitor mymaster  172.17.0.3 6379 2
// 名称为 mymaster ,IP 为 127.0.0.1 端口为 6380
// 最后的 2  是指最少有 2 给 Sentinel 实例同意一台 redis 服务器宕机,才会认为 客观下线。
// sentinel monitor  自定义的主节点名称 主节点的 IP  主节点端口   票数 

事例配置文件

protected-mode no  # 设置密码登录
bind 0.0.0.0   # 设置谁能访问
port 16380   # 设置端口
daemonize yes  # 后端启动
sentinel monitor master 127.0.0.1 16379 2  # 监控的master 
sentinel down-after-milliseconds master 5000   # 节点有效回复响应的时间
sentinel failover-timeout master 180000  # ping
sentinel parallel-syncs master 1   #  
sentinel auth-pass master 123456   #  密码
logfile /var/log/redis/sentinel-16380.log  # 日志文件

模拟redis,down掉

redis-cli -h 172.17.0.3 -p 6379 shutdown   #停主
redis-cli info replication     #查看某个从,它成为了主

sentinel配置文件(设置后会对配置文件修改,修改端口以及日志文件)

image.png

redis-cli -p 27001 info查看sentinel状态

image.png

哨兵选举

票数和领导者选举有关系

领导者选举的事件发生,必须满足下面的条件

max(票数, (哨兵的个数 / 2) + 1 ) 个哨兵参加选举

才可以选举出领导者,从而完成故障转移。
例子:

比如有 5 个哨兵, 配置的票数是 4

max(4, (5 / 2) + 1)

max(4, 3.5)
4 最大
结果就是`需要 4 个哨兵参与选举才可以,完成故障转移`。
上一篇 下一篇

猜你喜欢

热点阅读