小编给大家分享一下Redis Sentinel安装配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Redis Sentinel概述我们知道Redis类似MySQL数据库自带主从复制结构,产品环境中,如果一旦master发生crash,我们希望slave可以立即自动提升为主,接替业务提供服务,如何实现这个功能呢?redis sentinel集群可以帮助我们实现这个功能;Redis Sentinel是Redis官方原生高可用解决方案,Redis Sentinel部署架构主要包括两部分:Redis Sentinel集群和Redis master-slave集群,其中Redis Sentinel集群是由若干Sentinel节点组成的分布式集群;可以实现故障发现、故障转移、配置中心和客户端通知。Redis Sentinel的节点数量要满足2n+1(n>=1)的奇数个(官方建议至少3个)。Redis Sentinel特点(1)master与slave之间的failover是通过sentinel来监控,如果共有5个sentinel,配置参数中设置只要有2个sentinel认为master crash了,就会进行failover,但是进行failover的那个sentinel必须先获得至少3个sentinel的授权才能实行failover;(2)sentinel集群不会同一时间多个sentinel并发执行failover,如果第一个进行failover的sentinel失败了,另外一个将会在一定时间内重新进行failover,以此类推;(3)当failover后,sentinel会获得master的最新的一个配置版本号,然后在广播给其他sentinel,所以一个能够互相通信的sentinel集群最终会采用版本号最高且相同的配置;(4)Redis Sentinel version1开始于Redis2.6,Redis Sentinel version 2 开始于Redis 2.8,建议使用Sentinel 2 ;(5)Redis-Sentinel是Redis官方推荐的高可用性(HA) 解决方案,Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。Sentinel可以监视任意多个主服务器(复用),以及主服务器属下的从服务器,并在被监视的主服务器下线时,自动执行故障转移操作。SDOWN和ODOWNSDOWN(主观宕机)是sentinel自己主观检测到master的状态是down;ODOWN(客观宕机)需要大多数的sentinel都认为master宕机;从SDOWN切换到ODOWN不需要任何一致性算法,只需要一个gossip协议,如果一个sentinel收到了足够多的sentinel发来消息告诉它某个master已经down掉了,SDOWN状态就会变成ODOWN状态。如果之后master可用了,这个状态就会相应地被清理掉。Sentinel.conf相关参数port 26379#sentinel的端口号sentinel monitor mymaster 127.0.0.1 6379 2#sentinel监控的master名称默认是mymaster, 最后数字2表示如果有两个sentinel认为master挂了,则这个master即认为不可用;注意:我们可以通过配置不同的master名称,让一套Sentinel Cluster监控多个Redis master-slave集群;sentinel down-after-milliseconds mymaster 30000# 默认30秒,sentinel会通过ping来判断master是否存活,如果在30秒内master返回pong给sentinel,则认为master是好的,否则sentinel认为master不可用;sentinel parallel-syncs mymaster 1#当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1sentinel failover-timeout mymaster 180000#故障转移超时时间为3minRedis Sentinel中的身份验证当一个master配置为需要密码才能连接时,客户端和slave在连接时都需要提供密码;master通过requirepass设置自身的密码,不提供密码无法连接到这个master;slave通过masterauth来设置访问master时的密码;但是当使用了sentinel时,由于一个master可能会变成一个slave,一个slave也可能会变成master,所以需要同时设置上述两个配置项。安装RedisSentinel(1)Redis sentinel架构图和节点环境
(2)配置Redis主从复制检查主从复制的设置(3)配置sentinel集群三个sentinel节点的sentinel.conf文件配置一样,如果是在同一个主机上,则需要使用不同的端口号sentinel节点有两种启动方法:(4)检查整个集群的状态当我们启动主从节点和sentinel节点后,sentinel.conf配置文件会自动添加或修改参数测试自动failove免费主机域名rmaster和slave发生了变化,IP60成为新的master,IP58成为slave重启修复好的旧master之后,会自动成为新master的从库Failover过程分析:Each Sentinel detects the master is down with an +sdown event.This event is later escalated to +odown, which means that multiple Sentinels agree about the fact the master is not reachable.Sentinels vote a Sentinel that will start the first failover attempt.The failover免费主机域名 happens.sentinel节点会定期通过ping检测redis的master是否存活,一旦master crash,首先sentinel自己会主观认为master crash,然后三个sentinel之间彼此通信,只要有两个sentinel节点认为master crash,则客观认为master crash,接着三个sentinel节点会投票,得到两票的一个sentinel会去执行failover,最后master 30s之内没有响应sentinel才会真正的failover;一旦挂掉的旧master修复,重新启动后,会作为新master的从库存在;FAQError1:看完了这篇文章,相信你对“Redis Sentinel安装配置的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注云技术行业资讯频道,感谢各位的阅读!
相关推荐: MySQL 5.7多主复制报错Coordinator stopped because there were error(s)怎么办
这篇文章给大家分享的是有关MySQL 5.7多主复制报错Coordinator stopped because there were error(s)怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 root@(none) 10…