美文网首页
一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其他哨

一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其他哨

作者: 等你足够强了再说吧 | 来源:发表于2022-01-10 09:14 被阅读0次

    哨兵机制,它可以实现主从库的自动切换。通过部署多个实例,就形成了一个哨兵集群。哨兵集群中的多个实例共同判断,可以降低对主库下线的误判率。但是,我们还是要考虑一个问题:如果有哨兵实例在运行时发生了故障,主从库还能正常切换吗?
    实际上,一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其他哨兵还能继续协作完成主从库切换的工作,包括判定主库是不是处于下线状态,选择新主库,以及通知从库和客户端。
    如果你部署过哨兵集群的话就会知道,在配置哨兵的信息时,我们只需要用到下面的这个配置项,设置主库的 IP 和端口,并没有配置其他哨兵的连接信息。

    sentinel monitor <master-name> <ip> <redis-port> <quorum>

    这些哨兵实例既然都不知道彼此的地址,又是怎么组成集群的呢?要弄明白这个问题,我们就需要学习一下哨兵集群的组成和运行机制了。基于 pub/sub 机制的哨兵集群组成哨兵实例之间可以相互发现,要归功于 Redis 提供的 pub/sub 机制,也就是发布 / 订阅机制。哨兵只要和主库建立起了连接,就可以在主库上发布消息了,比如说发布它自己的连接信息(IP 和端口)。同时,它也可以从主库上订阅消息,获得其他哨兵发布的连接信息。当多个哨兵实例都在主库上做了发布和订阅操作后,它们之间就能知道彼此的 IP 地址和端口。

    相关文章

      网友评论

          本文标题:一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其他哨

          本文链接:https://www.haomeiwen.com/subject/ofhmcrtx.html