zoukankan      html  css  js  c++  java
  • Redis哨兵(sentinel)

    介绍

    Redis的sentinel主要是用来管理多个Redis服务器,sentinel负责(1)监控主服务器和从服务器的运行状态(2)主服务器运行故障时自动切换其中一台从服务器为主服务器

    Sentinel常用配置选项

    sentinel monitor master-name host port quorum

    例子:sentinel monitor mymaster 127.0.0.1 6379 2

    例子表示的是声明该Sentinel监控的master的名字叫做mymaster,地址为127.0.0.1:6379,最后一个2表示的意思是当集群中有2个Sentinel认为master宕机了或者1个Sentinel有2次认为master宕机了,就会真正认为该master彻底宕机了。

    sentinel auth-pass master-name password

    如果监控的Redis服务器设置了密码,这需要配置这个选项

    sentinel down-after-milliseconds master-name milliseconds

    Sentinel会向master发送心跳PING来确认master是否运行,如果master在一定时间(down-after-milliseconds,单位毫秒)内不回应PONG 或者是回复了一个错误消息,那么Sentinel会认为master已经宕机了。

    实验介绍

    搭建Redis集群,如下所示

    根据上图配置并启动三台Redis服务器和一台Sentinel

    启动Sentinel需要用到sentinel.conf,sentinel.conf可以在redis的源码包中找到,Sentinel的启动方式为redis-sentinel /path/to/sentinel.confredis-server /path/to/sentinel.conf --sentinel

    sentinel.conf的部分配置为
    sentinel monitor mymaster 127.0.0.1 6379 1
    sentinel down-after-milliseconds mymaster 5000

    成功启动sentinel

    接下来,shutdown master(localhost:6379)即在命令行中敲入./bin/redis-cli -p 6379 shutdown
    等待一小段时间后,我们观察Sentinel,可以看到Sentinel进行了故障自动转移

    接下来连接到127.0.0.1:6381,确实可以看到被设置为了master,并且127.0.0.1:6380是其slave

    master宕机后由哪台slave成为新的master是由各个slave的slave-priority(在redis.conf中配置)决定的,slave-priority越小则优先被设置为新master,如果相同则随机设置一台slave为master

  • 相关阅读:
    python3+spark2.1+kafka0.8+sparkStreaming
    python3.5读取kafka中的数据
    kafka启动及查看topic命令【已用过的,待更新】
    filebeat+kafka失败
    情侣浪漫网页制作
    侃侃静态代理和动态代理
    MyBatis增删改查模板
    虚拟机和Docker的异同
    <context:annotation-config/>,<mvc:annotation-driven/>和<context:component-scan>之间的关系
    异步上传图片到另外一台服务器
  • 原文地址:https://www.cnblogs.com/helbing/p/5264858.html
Copyright © 2011-2022 走看看