发布时间:2022-08-19 13:48
在 Redis 的主从架构中,由于主从模式是读写分离的,如果主节点(master)挂了,那么将没有主节点来服务客户端的写操作请求,也没有主节点给从节点(slave)进行数据同步了。
主节点挂了
这时如果要恢复服务的话,需要人工介入,选择一个「从节点」切换为「主节点」,然后让其他从节点指向新的主节点,同时还需要通知上游那些连接 Redis 主节点的客户端,将其配置中的主节点 IP 地址更新为「新主节点」的 IP 地址。
这样也不太“智能”了,要是有一个节点能监控「主节点」的状态,当发现主节点挂了 ,它自动将一个「从节点」切换为「主节点」的话,那么可以节省我们很多事情啊!
Redis 在 2.8 版本以后提供的哨兵(Sentinel)机制,它的作用是实现主从节点故障转移。它会监测主节点是否存活,如果发现主节点挂了,它就会选举一个从节点切换为主节点,并且把新主节点的相关信息通知给从节点和客户端。
哨兵其实是一个运行在特殊模式下的 Redis 进程,所以它也是一个节点。从“哨兵”这个名字也可以看得出来,它相当于是“观察者节点”,观察的对象是主从节点。
当然,它不仅仅是观察那么简单,在它观察到有异常的状况下,会做出一些“动作”,来修复异常状态。
哨兵节点主要负责三件事情:监控、选主、通知。
哨兵的职责
所以,我们重点要学习这三件事情:
哨兵节点是如何监控节点的?又是如何判断主节点是否真的故障了?
根据什么规则选择一个从节点切换为主节点?
怎么把新主节点的相关信息通知给从节点和客户端呢?
k8s笔记14--初次体验 开源云原生软件交付平台zadig
python读取并可视化npy格式的深度图文件以及将其保存为jpg图片的方法
复盘:霍夫曼编码平均长度计算方式,信源符号a1-a6概率为:0.1,0.4,0.06,0.1,0.04,0.3,霍夫曼编码平均长度是
【Turtle表白系列】你为什么还单身 ?因为昨天才遇见你。(爱心升级版本来袭)
SpringBoot+Thymeleaf+ECharts实现大数据可视化(基础篇)
vuex 的基础:关于vuex中用户组件、dispatch、actions、commit、mutations、state的一些概念、关系的整理