商务门户网站怎么做,亚马逊网站建设特点,wordpress 大数据量查询,wordpress 时间代码提到哨兵我们第一个印象就是和安全保卫方面相关的。那么在Redis中也是一样的#xff0c;它也是保卫Redis的运行安全的。Redis在主从复制的模式下#xff0c;如果主节点发生故障不能提供服务时#xff0c;那我们可以人工的介入#xff0c;将其中任何一个从节点晋升为主节点它也是保卫Redis的运行安全的。Redis在主从复制的模式下如果主节点发生故障不能提供服务时那我们可以人工的介入将其中任何一个从节点晋升为主节点然后我们还要通知其它子节点更新主节点信息。这样Redis就可以继续提供服务了。但在实际的场景中如果我们采用人工介入的方式来解决主节点故障等问题是不恰当的因为只要和人有关的操作就可能会有问题其二人工进入的方式修复的比较慢。为了解决以上各种问题于是Redis在2.8版本之后提供了Redis Sentinel(哨兵)功能来解决这种问题。所以这一篇中我们主要介绍Redis Sentinel的详细使用。 在上面我们提到过当Redis主节点发生故障时我们可以采用人工介入的主式选取一个从节点继续提供服务但这样有很大的不便无论是对于应用还是运维来说。对于应用方来说主节点的故障可能导致数据的丢失及读取数据错误而对于运维来说故障的修复实时性和准确性则无法得到保障。所以当我们遇到上述问题并且Redis在2.8版本之后时我们就可以使用Redis Sentinel功能该功能能够自动完成故障发现和故障转移。 Redis Sentinel是一个分布式架构其中包含若干个Sentinel节点和Redis数据节点。每个Sentinel节点都会对数据节点和其它的Sentinel节点进行监控当它发现其它节点不可用时会对该节点进行下线标识。如果被标识的节点是主节点它会和其它的Sentinel节点进行商量并且当大多数Sentinel节点都认为主节点不可用时它们会选举出一个Sentinel节点来完成自动故障转移功能同时Redis Sentinel会将这个变化实时通知给Redis应用方且整个过程完全是自动的无需人工介入。 下面我们看一下Redis主从复制模式和Redis Sentinel架构的区别。 下面我们简单介绍一下Redis Sentinel中的几个功能: 监控:Sentinel节点会定期检测Redis数据节点其余Sentinel节点是否可用。通知:Sentinel节点会将故障转移的结果通知给应用方。主节点故障转移:实现从节点晋升为主节点并维护后续正确的主从关系。配置提供者:在Redis Sentinel结构中客户端在初始化的时候连接的是Sentinel节点集合从中获取主节点信息。 对于节点故障的判断是由多个Sentinel节点共同完成的这样可以有效地防止误判。 下面我们了解一下Redis Sentinel的安装与部署。 部署Redis数据节点 1.启动主节点 2.启动两个从节点因为从节点要配置主节点的信息所以我们采用配置文件的方式配置下面为具体的配置 redis-6380.conf redis-6381.conf 3.确认主从关系 站在主节点的角度上看它有两个从节点 站在从节点的角度上看它有一个主节点 部署Sentinel节点 下面我们看一下Sentinel节点的具体配置 1.配置Sentinel节点 1)Sentinel节点的默认端口为26379。2)Sentinel monitor mymaster 127.0.0.1 6379 2代表sentinel-1节点需要监控127.0.0.1:6379这个主节点2代表判断主节点失败至少需要2个Sentinel节点的同意,mymaster是主节点的别名其余的参数以后在做详细说明。 2.启动Sentinel节点 Sentinel节点的启动方法有两种 方法一使用redis-sentinal命令 方法二使用redis-server命令加--sentinel参数 3.确认 Sentinel节点因为本质是一个特殊的Redis节点所以我们依然可以通过info命令查看它的相关信息。 Sentinel配置说明 下面我们详细介绍一下Sentinel节点的配置说明。 1.sentinel monitor 配置如下 Sentinel节点会定期监控主节点。参数表示要监控的主节点的名字。表示监控主节占的ip表示监控主节点的端口表示要判断主节点故障时所需要的票数。参数设置的越小那么达到下线的条件就越宽松反之越严格。正常情况下应该是该参数设置为Sentinel节点的一半加1。 2.sentinel down-after-milliseconds 配置如下 每个Sentinel节点都要通过定期发送ping命令来判断Redis数据节点和其余Sentinel节点是否可用如果超过了down-after-milliseconds配置的时间且没有回复则判断节点不可用。参数单位为毫秒。 3.sentinel parallel-syncs 配置如下 当Sentinel节点对主节点判断故障时Sentinel领导者节点会做故障转移操作选出新的节点原来的节点会向新的主节点发起复制操作parallel-syncs就是限制在一次故障转移后每次向新的主节点发起复制操作的从节点个数。 4.sentinel failover-timeout 配置如下 failover-timeout可以理解为故障转移超时时间但实际上它主要有4个阶段 选出合适从节点晋升选出的从节点为主节点命令其余从节点复制新的主节点等待原主节点恢复后命令它去复制新的主节点 5.sentinel auth-pass 配置如下 如果Sentinel监控的主节点配置了密码sentinel auth-pass配置通过添加主节点的密码防止Sentinel节点对主节点无法监控。 6.sentinel notification-script 配置如下 sentinel notification-script的作用是在故障转移期间当一些警告级别的Sentinel时间发生时会触发对应路径的脚本并向脚本发送相应的事件参数。 7.sentinel client-reconfig-script 配置如下 sentinel client-reconfig-script的作用是在故障转移结束后会触发对应路径脚本并向脚本发送故障转移结果的相关参数。