zoukankan      html  css  js  c++  java
  • Redis:哨兵机制sentinel配置(5)

    一、概念
    Redis Sentinel为Redis提供高可用性。主要有以下功能
     
        监控,Sentinel会不断检查主节点和从节点是否按预期工作。
        通知。Sentinel可以通过API通知系统管理员,一个受监控的Redis实例出现问题。
        自动故障转移。如果主服务器未按预期工作,Sentinel可以启动故障转移过程,其中从节点升级为主节点,其他服务器重新配置向新主同步数据
     
    Sentinel本身设计为在多个Sentinel进程协同工作的配置中运行。让多个Sentinel进程协作的优势如下:
     
        当多个Sentinels同意给定主设备不再可用时,将执行故障检测。这降低了误报的可能性。
        即使并非所有Sentinel进程都正常工作,哨兵也能正常工作,从而使系统能够抵御故障。毕竟,拥有故障转移系统并不是一件好事,而故障转移系统本身就是一个单一的故障点。
     
    二、配置前第几个说明
    1、Sentinel会自动发现从节点,也就是我们只需要配置好监控的主节点,Sentinel会自己找到主节点的从节点,已经同样在监控主节点的其他Sentinel
    2、配置Sentinel节点个数一般大于3 且是奇数,如果只有2个,那么发生网络分区的时候只需要1票就可以认为节点down了,这个就很不合理了。
     
    二、实现
    1、配置
    查看哨兵是否生效(登录哨兵所在cli):
    redis-cli -p 26380  
    #sentinel master mymaster
    127.0.0.1:26381> sentinel master mymaster
    1) "name"
    2) "mymaster" #标识名
    3) "ip"
    4) "127.0.0.1"  #主节点ip
    5) "port"
    6) "6380"  #端口
    7) "runid"
    8) "76bd28b96c8bb8c1ea9d8c5ceb62e4cd77265a7c"
    9) "flags" #标识,这里表示是一个主节点
    10) "master"
    11) "link-pending-commands"
    12) "0"
    13) "link-refcount"
    14) "1"
    15) "last-ping-sent"
    16) "0"
    17) "last-ok-ping-reply"
    18) "827"
    19) "last-ping-reply"
    20) "827"
    21) "down-after-milliseconds"
    22) "60000"
    23) "info-refresh"
    24) "1065"
    25) "role-reported"
    26) "master"
    27) "role-reported-time"
    28) "399885"
    29) "config-epoch"
    30) "0"
    31) "num-slaves"   #哨兵数量
    32) "2"
    33) "num-other-sentinels"
    34) "2"
    35) "quorum"  ##法定票数
    36) "2"
    37) "failover-timeout"  #故障转移的超时时间
    38) "180000"
    39) "parallel-syncs"  #支持多少个slave同时同步数据,值太大对主库有压力。太小的话整个集群同步时间慢
    40) "1"
     
    2、测试自动重新分配
    1)连接主库,关闭服务
    redis-cli -p 6380
    #shutdown 
     
    2)连接哨兵查看
    redis-cli -p 26381
    1) "name"
    2) "mymaster"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6382"  #已自动切换6382为主服务器
     
     
    3)登录6382查看
    redis-cli -p 6382
    127.0.0.1:6382> info replication
    # Replication
    role:master  #已自动切换6382为主服务器
    connected_slaves:1    #从服务器1个
    slave0:ip=127.0.0.1,port=6381,state=online,offset=133493,lag=0
    master_replid:36a566012f6cb1a42d69273ceebbb1187943477c
    master_replid2:6a9a9ea6c3ee248c95b65e689841f3edcc0bc5fa
    master_repl_offset:133493
    second_repl_offset:111505
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:423
    repl_backlog_histlen:133071
     
    4)重启之前的主服务器后
    再次查看,之前的主服务器自动变为从服务器
    redis-cli -p 6382
    127.0.0.1:6382> info replication
    # Replication
    role:master
    connected_slaves:2
    slave0:ip=127.0.0.1,port=6381,state=online,offset=173563,lag=1
    slave1:ip=127.0.0.1,port=6380,state=online,offset=173563,lag=1
    master_replid:36a566012f6cb1a42d69273ceebbb1187943477c
    master_replid2:6a9a9ea6c3ee248c95b65e689841f3edcc0bc5fa
    master_repl_offset:173696
    second_repl_offset:111505
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:423
    repl_backlog_histlen:173274
     
    参考:
     

    本博客地址: wukong1688

    本文原文地址:https://www.cnblogs.com/wukong1688/p/12325999.html

    转载请著名出处!谢谢~~

     
  • 相关阅读:
    strcspn()函数
    makfile通用版本
    C实现简单的xml格式文件
    shell编程题(七)
    C语言实现五子棋
    打字软件(最终版本)
    TypeWriting
    KMP 串的模式匹配 (25分)
    C链表操作
    Ubuntu终端字体
  • 原文地址:https://www.cnblogs.com/wukong1688/p/12325999.html
Copyright © 2011-2022 走看看