1、为什么会使用哨兵模式?
????????在Redis集群中,使用到了主从复制技术,但是主服务器宕机之后,整个Redis集群只能进行读操作,无法进行写操作,此时需要重新选举一个主服务器,那么哨兵模式作用就是在Redis宕机之后重新选举出新的主服务器,避免Redis不能写的情况。
2、哨兵模式的工作原理?
????????哨兵只需要监听主服务器(master)的ip地址,每隔10s时间就会ping一下master服务器,而Redis在配置集群时,从服务器都配置了主服务器的ip地址、端口号和密码,因此哨兵监听了主服务器,也能获取到和主服务器相关的从服务器的信息,所以,当主服务器宕机之后,哨兵会根据从服务器的信息重新选举出新的主服务器,此时其它从服务器的主服务器的ip地址也会发生改变,变成新的主服务器ip地址。
3、哨兵如何选举?
????????在Redis集群中,一般哨兵的数量和Redis服务器的数量是一致的,每一个哨兵都监听主服务器,当一个哨兵发现主服务器ping不通之后,会通知其它哨兵也去ping主服务器,当有一定标准的哨兵都ping不通主服务器时,就会认定主服务器已经宕机,这个宕机标准是自己设置的,在配置哨兵监听的同时配置这个标准。
4、哨兵之间是如何通讯的?
????????在一个Redis集群中,所有的哨兵都值监听主服务器的ip,那么所有的哨兵都会向同一个主题中发布信息,当第一个哨兵发布信息之后,自己订阅自己,然后第二个哨兵发布之后,第一个哨兵会订阅第二个哨兵,一次类推,这样哨兵之间就实现了通讯;哨兵之间的通讯使用到了mq消息队列。
5、如何配置哨兵模式?
? ? ? ? 哨兵和Redis是不同的进程,因此配置哨兵是另外一个配置文件sentinel.conf,首先是配置哨兵模式后台启动:
?然后是配置哨兵的监听,根据上面的的地址配就行了,端口号后面的这个2,表示当有两个哨兵ping不通主服务器时,就会认定主服务器已经宕机,需要重新选举,这个数字根据情况配置。醉胡需要配置主服务器的密码即可。
?当主服务器宕机之后,哨兵重新选举出新的主服务器,此时的redis.conf文件的配置的主服务器ip会更改成新的主服务器的ip地址,为什么可以自动改变,是因为哨兵在监听时获取到了整个Redis集群的信息,所以会自动配置;当我们重启宕机的Redis服务器之后,它的主服务器也会变成新选举出来的服务器ip,但是此时还无法实现主从同步,新选举出的主服务器不能识别重启的Redis服务器是自己的从服务器,有意思的是,如果重启的服务器配置了当前主服务器的密码,那么是可以实现主从同步的。
|