redis使用sentinel哨兵容灾备份

redis使用sentinel哨兵容灾备份,第1张

redis使用sentinel哨兵容灾备份 sentinel容灾备份

文章目录
  • sentinel容灾备份
    • 1. sentinel的作用
    • 2. 如何判断服务器是否工作正常
    • 3. 环境搭建
    • 4. 测试
    • 5. 优缺点

1. sentinel的作用
  1. 用来监听redis的主从服务器是否工作正常
  2. 当发现某个节点工作出现问题,通过相关设置向管理员进行反馈同时进行故障迁移

故障迁移也是sentinel最主要的作用,做到了自动化进行容灾备份上线,不然还要人手工 *** 作,达到了高可用性,当然不可能是100%高可用

2. 如何判断服务器是否工作正常

主要有以下三个方式

  1. 主观下线(subjectively down)

    上面提到了sentinel会监听redis服务器是否工作正常,如果sentinel发送了一条命令,但是目标服务器未在指定的时间内答复,那么就可以认为这个服务器挂了

  2. 客观下线(objectively down)

    SDOWN(主观下线)在有些情况可能出现误报,比如多机部署时候消息未及时返回,这时候就需要用到客观下线(事实上这种用的也比较多),也就是布置多个sentinel同时监听一个服务器,当一个认为服务器挂了,会询问其他sentinel是否也认为这个服务器挂了

  3. 仲裁

    当在给定时间内,得到了一定数量(通常是sentinel数量/2+1)的sentinel反应服务器挂了,也就是大部分人认为你死了,那你就真死了。这时候就会进行备份上线,进行主从服务器的切换(slave切换为master)

3. 环境搭建

ok,假设我们已经设置好了redis服务器的主从环境,端口6379为master,端口6380和6381分别为两个slave从节点

  1. 首先进行sentinel的config文件编写,这里我们使用三个sentinel,创建sentinel-1.config,sentinel-2.config,sentinel-3.config,名字其实随意,vim编写内容

    port 26379  #sentinel运行的端口号,三个要设置三个不同的port
    bind 0.0.0.0  #允许那些ip访问,0.0.0.0代表所有都可以访问,127.0.0.1代表只能本机访问
    daemonize yes  #以守护进程启动,也就是后台运行
    pidfile "/var/run/redis-sentinel-1.pid"  # log记录也要改下
    logfile "/root/redis/log/sentinel_26379.log"  # log存放位置
    dir "/tmp"
    sentinel monitor mymaster 127.0.0.1 6379 2  # 监听的master别名、ip地址、端口号、以及仲裁数# 量,就是超过一定数量就会客观下线的值
    sentinel down-after-milliseconds mymaster 5000  # 主观下线设置的规定实践
    sentinel auth-pass mymaster password  #这个可有可不有,设置密码
    sentinel failover-timeout mymaster 30000 # 切换备份时间,超过这个时间认为这次切换失败再切换一次
    
  2. 到redis安装目录的bin目录下启动redis-sentinel,注意要启动三个

    ./redis-sentinel   /config的存放目录
    
  3. 使用命令分别查看之前设置的三个端口查看是否启动成功,有返回值就成功

    lsof -i:26379 
    
4. 测试

可以kill掉master1的进程,这时候查看之前设置的任意一个sentinel的log文件,会发现重新选择一个节点进行上线变成master2,需要注意的是,就算这时候原来的master1节点上线,也会变成现在的master2的slave节点,图就不贴了,在windows环境里写的这篇博文,懒得换成ubuntu去测试了

5. 优缺点
  • 优点
    • 主从自动切换,可以高可用(不是100%)
  • 缺点
    • 切换投票需要时间,如果实在高访问量的情形下会出现数据丢失

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4669012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存