Redis sentinel搭建

Redis sentinel介绍

Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:


·监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。


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


·自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。
虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器, 你可以在启动一个普通 Redis 服务器时通过给定 –sentinel 选项来启动 Redis Sentinel 

 

  • redis sentinel的搭建

一,redis master-slave的搭建

1,搭建环境:

Redis:192.168.136.136(master)

Redis:192.168.136.137(slave)

Redis:192.168.136.138(slave)

Reidis架构一主两从,搭建方法这里不做介绍:

如下截图,证明redis结构已经复制成功:

 

2,开始搭建sentinel

修改sentinel.conf配置文件:

sentinel monitor mymaster 192.168.136.136 6379 2

每个节点需要监控192.168.225.128:6379这个主节点,2代表判断主节点失败至少需要2个sentinel节点同意,mymaster是主节点别名。
2这个值定义为几的标准:一般建议将其设置为sentinel节点的一半加1

 

启动sentinel:

redis-sentinel sentinel.conf &

##启动界面可以看到sentinel版本号,进程号等等信息。

uploading.4e448015.gif转存失败重新上传取消

 

二;sentinel监控redis主从故障转移测试

##sentinel故障转移测试,建议用2.8版本,之前用3.2版本测试不成功,可能这也说明sentinel后来没有得到重视,毕竟现在主流在用 redis cluster

  1. redis master异常故障

 Kill redis master 节点:

uploading.4e448015.gif转存失败重新上传取消

屏幕上会打印出相关日志:

可以看出来redis master 已经切换的192.168.136.137节点了

 

uploading.4e448015.gif转存失败重新上传取消

恢复redis 192.168.136.136,同时主节点上会打印日志,告诉说192.168.136.136加入到集群:

uploading.4e448015.gif转存失败重新上传取消

 

检查:如图:

192.168.136.136:slave

192.168.136.137:master

192.168.136.138:slave

uploading.4e448015.gif转存失败重新上传取消

 

  • 粗谈sentinul.conf配置文件

1、Port和dir

Port和dir分别代表sentinel节点的端口和工作目录

2、Sentinel monitor

Sentinel monitor <master-name> <ip><port> <quorum>
sentinel节点会定期监控主节点,
<master-name> sentinel要监控的主节点的名称
IP地址和端口为<ip><port>的主节点
<quorum>代表要判定主节点最终不可达所需要的票数

3、sentinel down-after-milliseconds

每个sentinel节点都要通过定期发送ping命令来判断redis数据节点和其余sentinel节点是否可达,如果超过了该时间,则判定节点不可达。单位:毫秒

4、sentinel parallel-syncs <master-name> <numslaves>

Sentinel领导者节点做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,parallel-syncs就是用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点的个数。
parallel-syncs=3 3个从节点同时发起复制
parallel-syncs=1 一次只有一个从节点复制,从节点会轮询发起复制

5、Sentinel failover-timeout

故障转移超时时间,作用于各个阶段。
A) 选出合适从节点
B) 晋升选出的从节点为主节点
C) 命令其余从节点复制新的主节点
D) 等待原主节点恢复后命令它去复制新的主节点

6、Sentinel auth-pass <master-name> <password>

如果sentinel监控的主节点设置了密码,sentinel通过以上命令添加主节点的密码

 

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页