sentinel发起failover命令,slave切换成master的过程

sentinel发起failover命令
sentinelFailoverStateMachine
    sentinelFailoverSelectSlave

日志:
2837:X 27 Jul 2020 10:45:09.636 # +selected-slave slave 192.168.27.128:6479 192.168.27.128 6479 @ mymaster 192.168.27.128 6379
2837:X 27 Jul 2020 10:45:09.636 * +failover-state-send-slaveof-noone slave 192.168.27.128:6479 192.168.27.128 6479 @ mymaster 192.168.27.128 6379
2837:X 27 Jul 2020 10:45:09.703 * +failover-state-wait-promotion slave 192.168.27.128:6479 192.168.27.128 6479 @ mymaster 192.168.27.128 6379

slave收到信息,设置当前配置信息为master相关
    {"slaveof",replicaofCommand,3,
     "admin no-script ok-stale",
     0,NULL,0,0,0,0,0,0},
void replicaofCommand(client *c)
    ##
        /* The special host/port combination "NO" "ONE" turns the instance
     * into a master. Otherwise the new master address is set. */
    if (!strcasecmp(c->argv[1]->ptr,"no") &&
        !strcasecmp(c->argv[2]->ptr,"one")) {
        if (server.masterhost) {
            replicationUnsetMaster();
            sds client = catClientInfoString(sdsempty(),c);
            serverLog(LL_NOTICE,"MASTER MODE enabled (user request from '%s')",
                client);
            sdsfree(client);
        }
日志:
2811:M 27 Jul 2020 10:45:09.704 # Setting secondary replication ID to 53800b91899d420c81b7c170c03e63cbfa378cb7, valid up to offset: 18684. New replication ID is 710727bc0c2596d189135eea774afe10da43d22b
2811:M 27 Jul 2020 10:45:09.704 * Discarding previously cached master state.
2811:M 27 Jul 2020 10:45:09.704 * MASTER MODE enabled (user request from 'id=16 addr=192.168.27.128:58900 fd=15 name=sentinel-97661441-cmd age=59 idle=0 flags=x db=0 sub=0 psub=0 multi=3 qbuf=140 qbuf-free=32628 obl=36 oll=0 omem=0 events=r cmd=exec')
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis SentinelRedis官方提供的一种高可用性解决方案,其中主观下线和客观下线是实现Redis高可用性的关键机制之一。 主观下线是指Sentinel节点认为某个Redis实例已经下线了,但是其他Sentinel节点并不一定认同这一观点。这种情况可能是由于网络抖动等原因导致的误判。在Sentinel节点发现Redis实例不可用时,会向其他Sentinel节点发送信息,如果其他Sentinel节点也认为这个Redis实例已经下线,那么这个Redis实例就会被判定为客观下线。 客观下线是指在Sentinel节点之间达共识,认为某个Redis实例已经下线。Sentinel节点会通过心跳检测等机制定期检测Redis实例的可用性,如果在一定时间内没有收到Redis实例的回复,那么Sentinel节点就会认为这个Redis实例已经下线,并向其他Sentinel节点发送信息,请求其他Sentinel节点确认。 在Redis Sentinel中,实现主观下线和客观下线的命令主要有以下几个: 1. SENTINEL is-master-down-by-addr命令:用于检查Redis主节点是否下线,主要用于实现主观下线。 2. SENTINEL get-master-addr-by-name命令:用于获取Redis主节点的地址信息。 3. SENTINEL reset命令:用于重置Sentinel节点的状态信息,主要用于实现客观下线。当Sentinel节点在一定时间内没有收到Redis实例的回复时,会调用该命令向其他Sentinel节点发送信息,请求确认Redis实例的下线状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值