Redis哨兵模式
Redis哨兵模式
概念
之前模式的缺点:
前面 主从模式 笔记中设置了一个一主二从的简单集群,但存在一些缺点:
例如如果主节点宕机了,需要将一个节点提升为主节点
这时产生了人工干预,没有自动故障转移。而哨兵模式可以解决这个问题。
哨兵模式
大致原理:哨兵会以一个独立的进程运行在集群中并监控各个节点。
主要执行的功能:
- 监控。不断发送命令来检查节点是否正常
- 通知。当发现节点出现问题后,哨兵通过发布订阅模式来通知其他节点
- 自动故障转移。当主节点不能正常工作时,开始自动故障转移,将一个从节点升级为主节点,再让其他节点指向新主节点
使用
先添加哨兵节点
$ vi sentinel.conf # 配置哨兵节点
sentinel monitor master 127.0.0.1 6379 1 # 这个端口是主节点的端口,哨兵自身的端口是随机的
$ redis-sentinel sentinel.conf # 启动哨兵节点
# 在主节点服务器所在终端Ctrl+C来模拟主节点宕机
# 然后等待一下,就能看在启动哨兵节点的终端看到检测到了,并将6381节点设置成了新的主节点
其他
哨兵节点宕机问题
因为哨兵节点的进程也有可能挂掉,实际生产环境中,往往设置三个哨兵节点保证高可用。
三个哨兵节点会通过选举方式选出一个领导者,来进行监听。领导者挂掉后剩余哨兵节点会重新选举
(个人疑问)
个人Q:主从节点连接的发起端是从节点,但你哨兵设置新节点是新端口而非沿用之前的端口,那么从节点应该没办法连接到新的主节点吧?何况哨兵端口也是随机的
链接到当前文件 0
没有文件链接到当前文件