美文网首页
redis--Sentinel高可用解决方案

redis--Sentinel高可用解决方案

作者: shoulda | 来源:发表于2018-07-13 09:51 被阅读0次

1.简介

Sentinel是Redis的高可用解决方案,由一个或者多个Sentinel实例,组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替下线的主服务器继续处理命令请求。

2.Sentinel的启动过程

1.初始化服务器
2.将普通Redis服务器使用的代码替换成sentinel专用代码
3.初始化Sentinel状态
4.根据给定的配置文件,初始化Sentinel的监视主服务器列表,
5.创建连向主服务器的网络连接。

3. redis-sentinel工作方式

1.redis服务需要主从部署,一个主节点,至少一个从节点
2.至少部署三个redis-sentinel实例

    +----------+        +----------+         +----------+    
    |sentinel  |        |sentinel  |         |sentinel  |  
    +----------+        +----------+         +----------+
          |                   |                     |
          |                   |                     |
          |                   |                     |
          +----------------------------------------+
                              |
     + ------+                 |                  + ------+  
     |   M    | -------- ------+------------------|   S   |
     + ------+                                    + ------+

每个sentinel都会和Master,Slave以及其他的sentinel进行连接,通讯,检测各实例的存活情况,如果发现Master实例挂掉,则各Sentinel之间协商根据规则选出一个Slave来变成Master,这样就使得redis服务可以继续使用了。
从服务端来讲,redis-sentinel引入解决了单个redis实例挂掉之后不能提供服务的问题,但是对客户端来说由于redis-sentinel的引入,可能导致redis的主从切换,因此直接给客户端redis实例地址的话,则可能因为主从的切换而导致redis地址不是预期的地址,为了完全的实现高可用我们还需要解决这个问题,解决这个问题有以下三种方案:

1.客户端方案
2.LVS方案
3.代理方案

3.1客户端方案

在redis客户端中支持redis-sentinel,通过redis-sentinel来实现redis实例。

优点:

简化服务端部署,只需部署redis实例和redis-sentinel即可以在客户端做配置,实现读写分离

缺点:

1.需要客户端支持redis-sentinel,很多流行的当前在用的客户端都不支持
2.对于已经使用的现有代码,需要修改业务使用客户端部分的代码
3.一些第三方应用使用redis,而我们可能无法修改这种应用的代码。

3.2LVS方案

采用LVS虚IP,在redis-sentinel发生主从切换后也执行虚IP漂移操作。

优点:

对客户端完全透明,现有业务代码无需做任何更改

缺点:

服务器部署稍微复杂,LVS部署需要root权限
LVS自身高可用需要有备机,在隔离部署时备机不能被利用,存在资源浪费
单一虚ip,只能规定为redis主节点或redis从节点,想要支持读写分离的话就得部署多个虚ip,同时需要客户端支持。

相关文章

  • redis--Sentinel高可用解决方案

    1.简介 Sentinel是Redis的高可用解决方案,由一个或者多个Sentinel实例,组成的Sentinel...

  • Redis--Sentinel

    Redis--Sentinel sentinel的目的: 1.为了实现高可用,即帮助主备切换。 切换主备的逻辑 启...

  • 20171029 KeepAlived

    一、高可用集群 (一)提升系统高可用性的解决方案:冗余(redundant) 工作模式active/passive...

  • Keepalived简介

    Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA...

  • lvs模型中的RS健康监测实现

    一、RS健康监测 1、 Director不可用,整个系统将不可用;SPoF 解决方案:高可用软件keepalive...

  • 三分钟带你入门 redis 高可用架构之哨兵

    什么是哨兵? 哨兵(Sentinel)是 redis 的高可用性解决方案,前面我们讲的主从复制它是高可用的基础,需...

  • 三分钟带你入门 redis 高可用架构之哨兵

    什么是哨兵? 哨兵(Sentinel)是 redis 的高可用性解决方案,前面我们讲的主从复制它是高可用的基础,但...

  • 可扩展系统就得这么设计

    前面分享了高并发系统(高并发系统设计)以及高可用系统(高可用系统)的解决方案,今天我们再来看另一个很重要的模块,可...

  • Redis哨兵机制简介

    Redis提供两种高可用解决方案,哨兵和集群,本文主要介绍哨兵系统的架构、高可用原理和故障处理过程。 Redis哨...

  • Redis高可用解决方案

    哨兵 哨兵是个基于redis HA解决方案,他支持redis 自身的主从角色替换,所以严格来说他其实只是个redi...

网友评论

      本文标题:redis--Sentinel高可用解决方案

      本文链接:https://www.haomeiwen.com/subject/udurpftx.html