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

    哨兵简介:

      主机“宕机”:

      

      哨兵:

        哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。
        

       哨兵的作用:

        监控
          不断的检查master和slave是否正常运行。
          master存活检测、master与slave运行情况检测
        通知(提醒)
          当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知。
        自动故障转移
          断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
        注意:
          哨兵也是一台redis服务器,只是不提供数据服务
          通常哨兵配置数量为单数(因为哨兵在监控时通常是哨兵数量的一半加1认为master“宕机”了,那就认定master“宕机”了)

      配置哨兵:
        这里配置一拖二的主从结构,
        配置三个哨兵(配置相同,端口不同)
          参看sentinel.conf
        启动哨兵

          redis-sentinel sentinel- 端口号 .conf

      服务启动的顺序:先起主机,再起从机,最后起哨兵

    配置哨兵
    配置项  范例 说明
    port 26379 哨兵端口(默认26379)
    dir /usr/local/redis/data 数据存放的位置

    sentinel auth-pass
    <服务器名称> <password>

    sentinel auth-pass mymaster
    root

    连接服务器口令

    sentinel monitor <自定义服
    务名称><主机地址><端口><主从服务器总量>

    sentinel monitor mymaster 
    192.168.43.182 6379 2

    设置哨兵监听的主服务器信息,最后的参数决定了最终参与选举的服务器
    数量(-1)

    sentinel down-after-milliseconds
    <服务名称><毫秒数(整数)>

    sentinel down-after-
    milliseconds mymaster 3000

    指定哨兵在监控Redis服务时,判定服务器挂掉的时间周期,默认30秒
    (30000),也是主从切换的启动条件之一

    sentinel parallel-syncs
    <服务名称><服务器数(整数)>

    sentinel parallel-syncs
    mymaster 1

    指定同时进行主从的slave数量,数值越大,要求网络资源越高,要求越
    小,同步时间越长

    sentinel failover-timeout
    <服务名称><毫秒数(整数)>

    sentinel failover-timeout
    mymaster 9000

    指定出现故障后,故障切换的最大超时时间,超过该值,认定切换失败,
    默认3分钟

    sentinel notification-script
    <服务名称><脚本路径>

       服务器无法正常联通时,设定的执行脚本,通常调试使用。

      

    哨兵工作原理:

        主从切换

          哨兵在进行主从切换过程中经历三个阶段
            监控:同步信息
            通知:保持连通
            故障转移:

              发现问题
              竞选负责人
              优选新master
              新master上任,其他slave切换master,原master作为slave故障恢复后连接

        阶段一:监控阶段

          

          

         阶段二:通知阶段

          

        阶段三:故障转移阶段

          

           

           

  • 相关阅读:
    通讯录封装实现
    简单通讯录的实现 main..h .m文件全部
    iOS 开发 OC编程 字典和集合 排序方法
    iOS 开发 OC编程 数组冒泡排序.图书管理
    iOS 开发 OC编程 属性和字符串练习
    iOS 开发 OC编程 属性和字符串
    iOS 开发 OC编程 便利构造器以及初始化方法
    iOS 开发 OC编程 方法的书写
    IOS 开发 OC编程 类和对象
    iOS 开发 c语言阶段考试题
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12460721.html
Copyright © 2011-2022 走看看