zoukankan      html  css  js  c++  java
  • redis哨兵

    sentinel主要功能如下:

    • 不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识
    • 如果被标识的是主节点,sentinel就会和其他的sentinel节点“协商”,如果其他节点也人为主节点不可达,就会选举一个sentinel节点来完成自动故障转义
    • 在master-slave进行切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换


    3.2 redis sentinel配置步骤

    3.2.1 配置三个redis数据库, 一主两从
    redis-6380.conf
    redis-6381.conf
    redis-6382.conf
    
    3.2.2 启动三个redis数据库,确保主从复制正常运行
    redis-server redis-6380.conf
    redis-server redis-6381.conf
    redis-server redis-6382.conf
    
    redis-cli -p 6380 info replication
    redis-cli -p 6381 info replication
    redis-cli -p 6382 info replication
    
    3.2.3 配置三个哨兵
    cd /opt/redis_conf
    vim redis-sentinel-26380.conf
    vim redis-sentinel-26381.conf
    vim redis-sentinel-26382.conf
    

    写入以下配置文件

    port 26380
    dir /data/26380
    logfile "26380.log"
    sentinel monitor qishimaster 127.0.0.1 6380 2  # 2表示需要几个哨兵同意选举
    sentinel down-after-milliseconds qishimaster 60000
    sentinel parallel-syncs qishimaster 1
    sentinel failover-timeout qishimaster 180000
    daemonize yes
    

    哨兵配置文件详解:

    # Sentinel节点的端口
    port 26379  
    dir /var/redis/data/
    logfile "26379.log"
    
    # sentinel announce-ip 127.0.0.1   # 宣告哨兵IP, 此配置只有当使用非127.0.0.1的IP配置哨兵无法成功时加上,同时redis三个服务端也需要同步修改IP
    
    # 当前Sentinel节点监控 127.0.0.1:6379 这个主节点
    # 2代表判断主节点失败至少需要2个Sentinel节点节点同意
    # mymaster是主节点的别名
    sentinel monitor mymaster 127.0.0.1 6379 2
    
    # 每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
    sentinel down-after-milliseconds mymaster 30000
    
    # 当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
    sentinel parallel-syncs mymaster 1
    
    # 故障转移超时时间为180000毫秒
    sentinel failover-timeout mymaster 180000
    
    daemonize yes
    

    创建存放哨兵文件的目录

    mkdir -p /data/{26380,26381,26382}
    

    如果发现哨兵没有正常启动,必须把IP改为127.0.0.1

    如果你是在三个不同的机器上,只能用机器对外访问的IP,那就需要添加这一个配置

    sentinel announce-ip 127.0.0.1
    
    3.2.4 启动三个哨兵
    [root@qishi666 redis_conf]# redis-sentinel redis-26380.conf
    [root@qishi666 redis_conf]# redis-sentinel redis-26381.conf
    [root@qishi666 redis_conf]# redis-sentinel redis-26382.conf
    
    3.2.5 此时查看哨兵是否成功通信


    3.2.6 如果出现问题,没有配置成功,没有显示前面这几条配置成功的信息,就推倒重来

    如果出现问题,没有配置成功,没有显示前面这几条配置成功的信息,就推倒重来!!!!!!

    如果出现问题,没有配置成功,没有显示前面这几条配置成功的信息,就推倒重来!!!!!!

    从配置主从同步开始做!!!!!

    3.2.7 验证redis高可用故障切换

    大致思路

    • 杀掉主节点的redis进程6379端口,观察从节点是否会进行新的master选举,进行切换
    • 重新恢复旧的“master”节点,查看此时的redis身份

    首先查看三个redis的进程状态

    再把6380启动起来,查看他们的主从状态

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    5.18英语
    5.18
    5.17
    单源点最短路模板
    5.16
    mock.js进行接口mock
    docker-compose安装和使用
    docker常用命令
    docker安装和使用(win10家庭版)
    ES6基础(2)-const
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/13917200.html
Copyright © 2011-2022 走看看