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

    1.什么叫做redis哨兵

    第一次看见这个“哨兵”这个词语,感觉听起来非常牛逼,是看门的,放哨的,对的,就是这个意思。由于redis如果进行主从复制的情况下,redis一般为一主多从的机构条件下,由于一个主节点负责读写操作,其他从节点从他这里进行复制,从而导致主节点存在风险,比如主节点出现了宕机,导致,其整个redis集群无法正常工作,从而,redis高可用则出现问题,从而redis哨兵腾空出世,专门来收拾这个残局的。作为一个放哨的士兵,来监控主服务是否正常工作。

    1. 哨兵原理

    其实redis哨兵,其实也是一个redis实例,只是他在启动方式上不一样。当redis哨兵启动之后呢会对数据节点和其余的sentinel节点进行监控,当发现先节点不可达的时候,会对节点做下线标识。其中分为两种情况

    • 主节点不可达:会与其他的哨兵节点进行协商,当大多数的sentinel节点都认为这个主节点不可达的时候,它们会选举出一个Sentinel节点来完成自动故障转移的工作,同事会将这个变化实时通知给redis的应用方,整个过程完全是自动的。
    • 从节点不可达:会将该节点进行标记下线操作。
    1. 故障步骤
      1. 主节点宕机
      2. Sentinel监控主节点出现异常
      3. 多个Sentinel监控发现主节点异常,从而开始选举主Sentinel作为领导
      4. 领导节点执行故障转移,其中包括通知redis客户端,各种从服务器。
      5. 重新构建服务器架构信息
    2. 启动服务
    1. 编辑Sentinel.conf文件
    # 每一个哨兵都会有一个port
    port 26379
    # 设置为后台保护进行 
    daemonize yes
    # 设置哨兵工作目录
    dir /opt/soft/redis/data
    # 设置监控主服务器
    # sentinel monitor 名字 ip 端口 判断宕机需要几个哨兵同意
    sentinel monitor mymaster 127.0.0.1 6379 2
    # 用于哦按吨redis数据节点和其余的sentinel是否可达,如果超过了则说明不可达
    sentinel down-after-millisends mymaster 30000
    # 用来配置redis故障转移后从节点向主节点复制的最大节点个数
    sentinel parallel-syncs mymaster 1
    # 故障转移超时时间,用于故障转移的各个节点,
    sentinel failover-timeout mymaster 1800000
    

    启动

    # 第一种方式
    redis-sentinel Sentinel.conf
    # 第二种方式
    redis-server sentinel.conf --sentinel
    
    1. 部署须知

    不应将所有的机器放在同一个物理机器上。

  • 相关阅读:
    《软件过程管理》阅读笔记3
    《软件过程管理》阅读笔记1
    《深度学习—智能时代的核心驱动力量》阅读笔记4
    《深度学习—智能时代的核心驱动力量》阅读笔记3
    《深度学习—智能时代的核心驱动力量》阅读笔记2
    《深度学习—智能时代的核心驱动力量》阅读笔记1
    软件杯赛题周总结(6)
    软件杯赛题周总结(5)
    esp32 arduino 蓝牙 使用uln2003 驱动四相五线步进电机备忘
    Oracle——在不安装oracle客户端的情况下,使用PLSQL
  • 原文地址:https://www.cnblogs.com/lonecloud/p/9124779.html
Copyright © 2011-2022 走看看