转载

【Redis】Redis哨兵模式

温馨提示:
本文最后更新于 2023年08月23日,已超过 1,087 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

【Redis】Redis哨兵模式
Redis主从模式当主服务器宕机后,需要手动把一台从服务器切换为主服务器,需要人工干预费事费力,为了解决这个问题出现了哨兵模式。

哨兵模式是是一个管理多个 Redis 实例的工具,它可以实现对 Redis 的监控、通知、自动故障转移,是Redis实现高可用的方案。哨兵模式能够在发生故障时自动触发故障转移流程,从而保证集群的高可用性。

哨兵模式概述
Redis 可以存在多台服务器,并且实现了主从复制的功能。哨兵模式是一种特殊的模式,在 Redis 中哨兵是一个独立的进程。其原理是哨兵通过发送命令,等待 Redis 服务器响应,从而监控运行的多个 Redis 实例是否可以正常工作,如下图所示。


通过发送命令,让 Redis 服务器返回其运行状态,包括主服务器和从服务器。
当哨兵监测到主机出现故障后,会自动将其中一台从服务器切换成主服务器,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换新的主服务器。
但是在现实中,一个哨兵进程监控 Redis 服务器,也可能出现问题,因为这个哨兵进程本身也可能出现故障。为了处理这个问题,可以使用多个哨兵监控,而各个哨兵之间还会相互监控,这样就变为了多个哨兵模式。除了监控各个 Redis 主从服务器,各个哨兵之间还会互相监控,看看哨兵们是否还“活”着。其关系如下图所示。





论述一下故障切换 (failover) 的过程:假设主服务器宕机,哨兵1先监测到这个结果,当时系统并不会马上进行 failover 操作,而仅仅是哨兵1 主观地认为主服务器已经不可用,这个现象被称为主观下线。当后面的哨兵也监测到了主服务器不可用,并且有了一定数量的哨兵认为主服务器不可用后,哨兵之间就会形成一次投票。通过哨兵之间的投票机制,选出新的主服务器后,就会通过发布订阅方式,让各个哨兵对自己监控的服务器进行切换主服务器操作,这个过程被称为客观下线。这样对于 Redis 客户端而言,一切都是透明的。

故障转移流程
故障转移需要选择一个slaver节点来作为master。

选择主Maseter过程大致如下:

选择优先级最高的节点,通过sentinel配置文件中的replica-priority配置项,这个参数越小,表示优先级越高
如果第一步中的优先级相同,选择offset最大的,offset表示主节点向从节点同步数据的偏移量,越大表示同步的数据越多
如果第二步offset也相同,选择run id较小的
这样通过以上四大步骤,实现由Redis Sentinel自动完成故障发现和转移,实现自动高可用。

Redis 哨兵模式的优缺点
哨兵模式优点:最大的优点就是主从可以自动切换,系统更健壮,可用性更高

哨兵模式缺点:最大的缺点就是还要多维护一套哨兵模式,实现起来也变的更加复杂增加维护成本

最大的缺点就是还要多维护一套哨兵模式,实现起来也变的更加复杂增加维护成本
————————————————
版权声明:本文为CSDN博主「Mr.VK」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mr_VK/article/details/132371696


正文到此结束
该篇文章的评论功能已被站长关闭
本文目录