zoukankan      html  css  js  c++  java
  • redis-sentinel主从复制高可用(哨兵)

    redis-sentinel就是一个独立运行的进程,用于监控多个master-slave集群
    自动发现master宕机,进行自动切换slave > master。

    sentinel主要功能如下:

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

    主从复制架构

    Redis Sentinel架构

    redis的一个进程,但是不存储数据,只是监控redis

      touch redis-sentinel-26379.conf

      touch redis-sentinel-26380.conf

      touch redis-sentinel-26381.conf

    redis-sentinel-26379.conf配置文件写入如下信息

    复制代码
    // Sentinel节点的端口
    port 26379  
    dir /var/redis/data/
    logfile "26379.log"
    daemonize yes // 当前Sentinel节点监控 192.168.119.10: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
    redis-sentinel-26380.conf和redis-sentinel-26381.conf的配置仅仅差异是port(端口)的不同。
    然后启动三个sentinel哨兵
    redis-sentinel /etc/redis-sentinel-26379.conf
    redis-sentinel /etc/redis-sentinel-26380.conf
    redis-sentinel /etc/redis-sentinel-26381.conf
     

    此时查看哨兵是否成功通信

    复制代码
    [root@master ~]# redis-cli -p 26379  info sentinel
    # Sentinel
    sentinel_masters:1
    sentinel_tilt:0
    sentinel_running_scripts:0
    sentinel_scripts_queue_length:0
    sentinel_simulate_failure_flags:0
    master0:name=mymaster,status=ok,address=192.168.119.10:6379,slaves=2,sentinels=3
    #看到最后一条信息正确即成功了哨兵,哨兵主节点名字叫做mymaster,状态ok,监控地址是192.168.119.10:6379,有两个从节点,3个哨兵


    配置成功后可以kill 6379主节点测试
    30秒后查看6380和6381节点得身份状态
    查看配置信息,注意master和slave角色

    随后启动6379节点,身份是不是也有所改变
     
  • 相关阅读:
    《锋利的jQuery》补充笔记
    sass学习笔记
    《HTML5与CSS3基础教程》学习笔记 ——补充
    ajax常见问题(部分)
    html新特性(部分)
    less 笔记
    《JavaScript高级程序设计》补充笔记2
    《JavaScript高级程序设计》补充笔记1
    《CSS3秘笈》备忘录
    显示实现接口的好处c#比java好的地方
  • 原文地址:https://www.cnblogs.com/ruan-ruan/p/13170186.html
Copyright © 2011-2022 走看看