Redis Sentinel 哨兵 Docker 安装配置

Redis 哨兵

Redis Sentinel 的高可用性

是啥?可以干啥?

介绍:

哨兵(sentinel)吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数将某一个从库转换为新主库,继续对外服务。俗称,无人值守运维

作用:

  1. 主从监控:监控主从redis库运行是否正常
  2. 消息通知:哨兵可以将故障转移的结果发送给客户端
  3. 故障转移:如果Master异常,则会进行主从切换,将其中一个Slave作为新Master
  4. 配置中心:客户端通过连接哨兵来获得当前Redis服务的主节点地址

使用

官网建议使用至少三台sentinel在正式环境在三台机器上保证容错,联系架构模式如下:

image-20240125153935176

  1. 添加配置sentinel.conf
    以下时sentinel 监控一台 redis 当然也可以监控多台,配置两组就可以,注意master的名字
    您只需要指定要监视的主站,给每个单独的主站 master(可以有任意数量的副本)不同的名称,会自动发现的slaver。

注意:

  1. 需要给 conf 文件权限请执行chmod -R 0777 /home/redis
  2. 三台 redis 都要配置 masterauth,且三台的 redis 密码要一样,不然切换主从的时候连接不上

redis Git官网配置

port 26379
daemonize no
pidfile /var/run/redis-sentinel.pid
logfile ""
dir /tmp
sentinel monitor mymaster 127.0.0.1 6379 2 # sentinel monitor <master-name> <ip> <redis-port> <quorum> 设置监控 ip和端口号的redis 名字设置为myredis   当投2个Sentinel认为主服务器失效时认为该redis宕机
sentinel auth-pass mymaster 123456 # sentinel auth-pass <master-name> <password> 配置 master 密码
sentinel down-after-milliseconds mymaster 30000 # 在30,000毫秒(30秒)之后,Sentinel将主服务器标记为失效。
acllog-max-len 128
sentinel parallel-syncs mymaster 1 # Sentinel一次只同步一个从服务器。
sentinel failover-timeout mymaster 180000 # 在180,000毫秒(180秒)之后,如果主服务器没有恢复,Sentinel将启动故障切换。
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
  1. 启动哨兵
redis-server /path/to/sentinel.conf --sentinel
# OR (官网给两种启动方法)
redis-sentinel /path/to/sentinel.conf
  1. docker 安装
docker run --restart=always \
-p 26379:26379 \
--name sentinel_26379 \
-v /home/redis/sentinel_26379.conf:/etc/redis/sentinel_26379.conf \
-v /home/redis/data:/data \
-d redis:7.0.12 redis-sentinel /etc/redis/sentinel_26379.conf

image-20240125143937823

提示: 如果不是在docker 上配置 Redis 使用 Sentinel 进行自动管理时 sentinel 会自动修改redis.conf 配置文件 即便重启也会按照 新的 master,但是使用 docker容器时不会修改配置文件。


工作流程

  1. SDown 主观下线:当一台 Sentinel 在和 master 进行心跳检测时发现无法再规定时间内得到相应,则判断该 master 为主观下线。
  2. ODown 客观下线:主观下线之后会进行和其他 sentinel 进行协商讨论 ,如果大于等于 quorum 则断定为客观下线。
  3. 选举兵王:通过 Raft算法选举出兵王代表,进行选举master操作。
  4. 选举Master:
    1. redis.conf文件中,优先级slave-priority或者replica-priority最高的从节点(数字越小优先级越高 )
    2. 偏移 setoff 高的有限 setoff 类似是与master的同步成都成正比,
    3. 如果以上都一样则采用RUN ID 的ASSCII 码进行比较,小的优先。

使用建议

  1. 哨兵节点的数量应为多个,哨兵本身应该集群,保证高可用
  2. 哨兵节点的数量应该是奇数
  3. 各个哨兵节点的配置应一致
  4. 如果哨兵节点部署在Docker等容器里面,尤其要注意端口的正确映射
  5. 哨兵集群+主从复制,并不能保证数据零丢失
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值