简介redis之哨兵集群搭建

如题所述

第1个回答  2022-07-16

在之前的主从辅助中有提到,如果从库发生故障,从库重连后会借助repl_backlog_buffer这个环形缓冲区实现增量复制,来达到数据相同的操作。
但是主库挂了怎么办?我们的redis服务总不可能只提供读服务吧(主库挂了从库仍可读),redis的哨兵机制有效的解决了这个问题

要开放26379端口为哨兵进程使用(哨兵进程说白了就是个监听主实例运行状况的进程)

分别进入容器运行sentinel

观察日志

查看日志

完成

哨兵进程主要负责三个任务

哨兵检测从库,若从库响应超时则标为 主观下线 ,因为从库的下线对集群影响不大
哨兵检测主库,若主库响应超时则标为 客观下线 ,这个因为网络延迟等不可避免的原因可能被误判,所以为减少误判需要进行多人投票,对应该设置的2,表示要2台从库标记为客观下线

筛选之后按照一定的规则,逐个打分

由于Redis提供的发布/订阅机制(pub/sub),哨兵实例之间可以互相发现对方
哨兵实例只要和主库建立连接,就可以 在主库上发布自己的连接信息(IP和端口) ,因此他们能获取彼此的IP地址和端口
同时,哨兵也会向主库发送info命令获取集群的主从列表信息,这样就可以和每个从库建立连接并持续监控
注意:如果假设上面的哨兵集群只有2个实例(2从),一个哨兵挂了,另一个想称为leader是不可能的,因为设置决定必须获得2票,而不是自己的一票

相似回答