Redis高可用设计方案之哨兵

目录

目标

概述

什么是哨兵?

哨兵有什么功能?

实战

环境准备

搭建哨兵集群

测试可用性


目标

  • 了解什么是Redis Sentinel。
  • 了解Redis Sentinel的功能。
  • 掌握Redis Sentinel故障测试。
  • 熟练配置Redis Sentinel使Redis达到高可用。

概述

什么是哨兵?

  • Redis Sentinel为Redis提供高可用性。Sentinel可以创建Redis部署,该部署可以在无需人工干预的情况下抵抗某些类型的故障。
  • Redis Sentinel还提供其他附带任务,例如监视,通知,并充当客户端的配置提供程序。
  • Redis Sentinel是一个分布式系统,Redis Sentinel集群能提高故障检测的准确性,也能提高Redis Sentinel自身的可用性。

哨兵有什么功能?

  • 监控:Sentinel会不断检查Redis主节点和从节点实例是否按预期工作。
  • 通知:如果Redis实例出了问题,Sentinel可以通过API通知系统管理员或其他计算机程序。
  • 自动故障转移:如果主节点未按预期工作,则Sentinel可以启动故障转移过程,在该过程中将从节点升级为主节点,将其他节点复制为使用新主节点,并通知使用Redis服务器的应用程序要使用的新地址。
  • 配置提供程序:Sentinel充当客户端服务发现的授权来源:客户端连接到Sentinels,以询问负责给定服务的当前Redis主节点的地址。如果发生故障转移,Sentinels将报告新地址。

实战

环境准备

  1. Linux虚拟机一台,且该虚拟机上安装了Redis(本文以redis-6.0.10.tar.gz版本为例)。
  2. 安装教程:Linux安装Redis单机版

搭建哨兵集群

第一步:在Linux虚拟机上复制三个redis.conf配置文件,分别为redis-7100.conf、redis-7200.conf、redis-7300.conf,且同时修改端口为7100、7200、7300。

#配置redis-7100.conf、redis-7200.conf、redis-7300.conf的从属关系。
#在redis-7200.conf、redis-7300.conf文件中加
slaveof 127.0.0.1 7100
角色节点地址
主节点127.0.0.1:7100
从节点127.0.0.1:7200
从节点127.0.0.1:7300

第二步:复制一份sentinel.conf文件。

cd /opt/redis-6.0.10
cp sentinel.conf sentinel-27100.conf

第三步:配置sentinel-27100.conf文件,明确监控的节点,该节点就是主节点。

#修改每个pid使其不一样
sentinel myid 2022a1079249d1c2df378736ff3f634190765e00
#端口
port 27100
#开启守护进程
daemonize yes
#设置pid文件
pidfile /var/run/redis-sentinel-27100.pid
#日志目录
logfile ""
#sentinel工作目录
dir /opt/redis-6.0.10/data
#监控的主节点是127.0.0.1:7100。
#自定义主节点的别名是mymaster。
#仲裁数量为2,表示:
#1、如果两个Sentinel同时同意主服务器不可访问,则其中两个将尝试启动故障转移。
#2、如果总共至少有三个Sentinel可以访问,则故障转移将被授权并实际上开始。
sentinel monitor mymaster 127.0.0.1 7100 2
#主节点在多久没有给哨兵响应认定为下线。单位:毫秒
sentinel down-after-milliseconds mymaster 30000
#并行同步数越小,消耗内存越少,反之越大,但是效率更高。
sentinel parallel-syncs mymaster 1
#故障转移超时时间,即从节点切换成主节点所消耗的最大时间。
sentinel failover-timeout mymaster 180000

第四步:复制两份sentinel-27100.conf文件,分别修改端口为27200,27300。

cp sentinel-27200.conf sentinel-27100.conf  
cp sentinel-27300.conf sentinel-27100.conf

第五步:启动三个Redis客户端,它们充当的角色如下。

./redis-server ../redis-7100.conf  
./redis-server ../redis-7200.conf
./redis-server ../redis-7300.conf

第六步:启动哨兵。

redis-sentinel ../sentinel-27100.conf
redis-sentinel ../sentinel-27200.conf
redis-sentinel ../sentinel-27300.conf

第七步:指定哨兵来启动Redis客户端,查看哨兵信息。

./redis-cli -h 127.0.0.1 -p 27100
info  sentinel

第八步:查看哨兵配置文件,此时会发现文件新增了节点信息和其他哨兵的信息。

cd /opt/redis-6.0.10
cat sentinel-27100.conf | grep -v "#"^C

测试可用性

第一步:将7100主节点,经过超时时间后查看Redis从节点是否升级为主节点。

cd /opt/redis-6.0.10/src
./redis-cli -h 127.0.0.1 -p 27200
info  sentinel

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值