Redis集群(二)Sentinel哨兵模式

Redis的主从模式配置简单,在提高单台服务器数据库读性能的同时,也能间接性的提高写的能力;与此同时,它的弊端也显而易见,那就是当主节点Master宕机后,整个集群就没有可写的节点了,为此就衍生出了一种新的模式,Sentinel(哨兵模式)

Redis的Sentinel系统用于管理多个Redis服务器,主要的工作可分为三点:

1.Monitoring(监视):Sentinel会不断检查主服务器和从服务器运作是否正常

  1)Sentinel可以监控任意多个Master和该Master下的Slaves

  2)同一哨兵下的,不同主从模型,彼此相互独立

  3)Sentinel会不断监察Master和Slaves是否正常

2.Notification(提醒):当被监控的某个Redis服务器出现问题时,可通过API向管理员或其他应用程序发送通知信息

3.Automatic failover(自动故障迁移):当一台主服务器宕机后,Sentinel会开始自动故障迁移的操作,它会通过半数选举的方式,在失效的主服务器中的从服务器变成主服务器;当客户端连接失效的主服务器时,集群也会向客户端返回新主服务器的地址

  1)Sentinel网络:监控同一个Master的Sentinel会自动连接,组成一个分布式的Sentinel网络,互相通信并相互交换监视服务器的信息。

  2)故障切换的过程:

    1.当任何一个Sentinel发现被监控的Master下线时,会通知其他的Sentinel,并进行投票决定该Master是否下线(由于遵循半数原则,所以Sentinel通常配奇数个);

    2.当Sentinel确定Master下线后,会在所有的Slaves中,选举一个新的结点升级成为Master,其他结点成为该Master的Slave

    3.当下线的Master恢复后,也成为新Master的Slave

配置流程:

1.创建Sentinels目录(s1,s2,s3分别表示三个哨兵)

2.在安装目录下将sentinel.conf拷贝到三个哨兵目录中

3.依次修改s1,s2,s3下的配置文件sentinel.conf(绑定ip,保护模式,端口,Sentinel)

s1的配置

 

1)是哨兵的名字 2)监视Master的ip地址 3)监视Master的端口 4)在投票过程中超过2个哨兵同意Master下线时,Master即视为宕机状态

s2的配置

s3的配置

 

 

 4.开启三个不同端口的Redis服务端

6380端口的redis-server(Master)

6381端口的redis-server(Slave)

6382端口的redis-server(Slave)

5.分别通过s1,s2,s3中的配置问起开启三个哨兵(由于监视的为同一个Master,三个哨兵会自动组成哨兵网络)

s1配置文件启动的哨兵

s2配置文件启动的哨兵

s3配置文件启动的哨兵

6.测试

  1)断开Master(端口为6380的redis-server)

  两个Slaves同时无法连接Master的警告

  6381端口的Slave

  6382端口的Slave

  Sentinel进行检测,投票,选举的操作

  6381redis-server变为新Master,6382redis-server成为6381的Slave

  6381界面

  6382界面

  2)原Master6380端口的redis-server重新上线

  6380端口的redis-server成为6381端口redis-server的Slave

原文地址:https://www.cnblogs.com/lch-Hao/p/10940980.html