Redis集群之哨兵模式

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Redis集群之哨兵模式,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Sentinel 哨兵本质上是一个运行在特殊模式下的Redis实例,只是初始化的过程和工作与普通的Redis不同,本质上也是一个单独的进程。

Sentinel 哨兵 是Redis的高可用解决方案:一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在主服务器下线时可以自动切换从服务器升级为主服务器。

1、Sentinel系统

下图是一个简单的Sentinel系统架构图,一个Sentinel系统监视一个主从集群,其中server1是Redis主服务器,server2/3/4是Redis 从服务器。主从之间利用主从复制来达到主从一致。而Sentinel系统监视整个主从集群。

在这里插入图片描述

2、Sentinel故障转移
在这里插入图片描述

a、当Sentinel系统察觉到Server1主服务器下线时,就会终止server2/3/4的复制。
b、同时Sentinel将server2升级为主服务器,server3/4从新的主服务器进行复制。同时等待server1的再次上线。
c、sentinel系统也可以主动降级主服务为从服务器,将从服务器升级为主服务器。

2.1、Sentinel 哨兵监控过程

Sentinel 哨兵监控集群过程:

1、命令 Sentinel哨兵通过发送命令,让redis服务器返回运行状态。

2、发布订阅 当主服务器状态发生变化时,Sentinel哨兵通过发布订阅模式通知其他从服务器。

2.2、Sentinel 哨兵故障转移

Sentinel 故障转移:

1、Sentinel系统中的Sentinel实例每隔1s就像集群发送PING命令

2、如果集群中有实例的回复Sentinel实例时间超过了 down-after-milliseconds,那么这个实例就会发送PING命令的Sentinel实例被主观下线

3、那么什么时候会客观下线呢?需要Sentinel系统中其他实例也确认集群中该实例主观下线。

如果master主服务器被标记为主观下线,则Sentinel系统中监视master的Sentinel进程需要以每秒一次的频率确认Master是否进入主观下线状态

4、当有足够的Sentinel实例(取决于配置)确认Master进入了主观下线,则Master会被标记为客观下线。

3、Sentinel 哨兵优缺点

优点:

1、哨兵模式基于主从复制,因此主从复制的优点哨兵都具备

2、哨兵具备了主从切换和故障转移,因此集群有了更高的可用性

缺点:

1、Redis较难支持在线扩容,在线扩容比较复杂。

寄语:sentinel 哨兵主要用来监控redis主从集群,提高了redis 主从集群的可用性。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/154707.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!