zoukankan      html  css  js  c++  java
  • Redis哨兵模式

    哨兵模式是一种特殊的模式,哨兵是一个独立的进程。其原理是哨兵通过发送命令 等待redis服务器的响应 从而监控多个redis实例。

    1、配置哨兵配置文件sentinel.conf

    [root@redis01 redis]# cat sentinel.conf  //这是最主要的一个配置
    sentienel monitor myredis01 192.168.100.208 6379 1
    
    官方配置文件里 是这么解释的
    # sentinel monitor <master-name> <ip> <redis-port> <quorum>
    # Tells Sentinel to monitor this master, and to consider it in O_DOWN
    # (Objectively Down) state only if at least <quorum> sentinels agree.
    当至少quorum个哨兵认为master节点失联后 这时候客观上认为主节点下线了。
    这种情况 哨兵之间就会发起投票 选举新的master节点。
    
    此外一般会将哨兵配置为后台运行和配置好日志
    daemonize yes
    logfile "sentinel01.log"
    sentinel down-after-milliseconds mymaster 30000 //哨兵主观上认为主节点下线 默认30s
    

    2、启动哨兵

    [root@redis01 redis]# redis-sentinel /redis/sentinel.conf 
    13625:X 22 Oct 2020 22:34:39.014 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    13625:X 22 Oct 2020 22:34:39.014 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=13625, just started
    13625:X 22 Oct 2020 22:34:39.014 # Configuration loaded
    13625:X 22 Oct 2020 22:34:39.017 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 5.0.5 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in sentinel mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
     |    `-._   `._    /     _.-'    |     PID: 13625
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    13625:X 22 Oct 2020 22:34:39.019 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    13625:X 22 Oct 2020 22:34:39.020 # Sentinel ID is c75fccd6ca92e1f1ea71977d8e2aaa705147b708
    13625:X 22 Oct 2020 22:34:39.020 # +monitor master myredis01 192.168.100.208 6379 quorum 1
    13625:X 22 Oct 2020 22:34:39.021 * +slave slave 192.168.100.210:6379 192.168.100.210 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 22:34:39.022 * +slave slave 192.168.100.209:6379 192.168.100.209 6379 @ myredis01 192.168.100.208 6379
    

    3.手动关闭了master主机 192.168.100.208 哨兵模式下192.168.100.210被设置为新的master主机

    13625:X 22 Oct 2020 23:34:19.523 # +sdown master myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:19.523 # +odown master myredis01 192.168.100.208 6379 #quorum 1/1
    13625:X 22 Oct 2020 23:34:19.523 # +new-epoch 1
    13625:X 22 Oct 2020 23:34:19.523 # +try-failover master myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:19.525 # +vote-for-leader c75fccd6ca92e1f1ea71977d8e2aaa705147b708 1
    13625:X 22 Oct 2020 23:34:19.525 # +elected-leader master myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:19.525 # +failover-state-select-slave master myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:19.626 # +selected-slave slave 192.168.100.210:6379 192.168.100.210 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:19.626 * +failover-state-send-slaveof-noone slave 192.168.100.210:6379 192.168.100.210 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:19.678 * +failover-state-wait-promotion slave 192.168.100.210:6379 192.168.100.210 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:20.380 # +promoted-slave slave 192.168.100.210:6379 192.168.100.210 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:20.380 # +failover-state-reconf-slaves master myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:20.432 * +slave-reconf-sent slave 192.168.100.209:6379 192.168.100.209 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:21.411 * +slave-reconf-inprog slave 192.168.100.209:6379 192.168.100.209 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:21.411 * +slave-reconf-done slave 192.168.100.209:6379 192.168.100.209 6379 @ myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:21.473 # +failover-end master myredis01 192.168.100.208 6379
    13625:X 22 Oct 2020 23:34:21.473 # +switch-master myredis01 192.168.100.208 6379 192.168.100.210 6379
    13625:X 22 Oct 2020 23:34:21.473 * +slave slave 192.168.100.209:6379 192.168.100.209 6379 @ myredis01 192.168.100.210 6379
    13625:X 22 Oct 2020 23:34:21.473 * +slave slave 192.168.100.208:6379 192.168.100.208 6379 @ myredis01 192.168.100.210 6379
    13625:X 22 Oct 2020 23:34:51.494 # +sdown slave 192.168.100.208:6379 192.168.100.208 6379 @ myredis01 192.168.100.210 6379
    

    4.将原master主机192.168.100.208上的redis服务恢复 192.168.100.208角色将会变为slave主机。哨兵模式会检测到如下:

    13625:X 22 Oct 2020 23:37:41.849 # -sdown slave 192.168.100.208:6379 192.168.100.208 6379 @ myredis01 192.168.100.210 6379
    13625:X 22 Oct 2020 23:37:51.753 * +convert-to-slave slave 192.168.100.208:6379 192.168.100.208 6379 @ myredis01 192.168.100.210 6379
    

    当只有一个哨兵的情况下,如果这个哨兵进程本身出了问题。就会出现问题。
    所以生产环境中 推荐使用多个哨兵来进行监控。哨兵之间还会互相监控,即多哨兵模式。

  • 相关阅读:
    多对多关系表的创建方式、forms组件
    SweetAler弹框插件与分页器插件
    Django数据库查询优化与AJAX
    django orm(2)
    Django orm(1)
    Django之视图层与模板层
    Django之路由层
    初识Django之前端后端与数据库的配置
    面试题49
    web框架之初识Django
  • 原文地址:https://www.cnblogs.com/atwo/p/13862277.html
Copyright © 2011-2022 走看看