zoukankan      html  css  js  c++  java
  • Redis:哨兵模式

    前言:

      主从复制是基于一致性实现的,所以一旦主节点挂掉了,那么为了维持主从复制,内部的从节点会去再选取一个leader作为Master,这样就保证了数据的一致性,最终实现主从复制

      在redis的主从复制集群部署的情况下,有两种方式去处理这种情况

      第一种:手动在从节点中选一个作为主节点,使用SLAVEOF no one让当前的从节点变为主节点,其它从节点就可以手动连接到最新的主节点(手动)!如果这个时候老大修复了,那就重新连接

      第二种:自动选举主节点方式,哨兵模式

    哨兵模式:

      1,概述:主从切换技术的方法是:当主服务器挂掉后,需要手动把一台从服务器切换为主服务器,这个过程是需要人工干预的,还会造成一段时间内服务不可用,这不是一种推荐方式,更多时候我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵)架构来解决这个问题

      2,哨兵模式解释:Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程他会独立运行,其本质就是哨兵通过发送命令,等待Redis服务器响应,从而监控运行多个Redis实例

    哨兵的作用:

    1.通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器

    2.当哨兵检测到master挂掉,会自动slave切换成master,然后通过发布订阅通知其它从服务器,修改配置文件,让它们切换主机

    注意:单体的哨兵模式一但哨兵节点坏掉,那么他就会彻底失效

    解决:集群部署哨兵节点

    实施:哨兵节点间不仅监控各个服务器还互相监控,

     当主服务器挂机,各个哨兵都会先后不同顺序的发现这个问题,第一个发现的主观上认为的,这个现象就是主观下线,当后面的服务器也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票结果由一个哨兵发起,进行failover【故障转移】操作,切换成功后,就会发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程成为客观下线;

    命令行启动哨兵进程:sentinel monitor myredis host port 1
    测试!

    1,配置哨兵配置文件sentinel.conf

    #sentinel monitor myredis host port 1
    sentinel monitor myredis 127.0.0.1 6379 1

    2.后面的这个数字1,代表主机挂了,slave

    3.启动哨兵

     

      注意:如果主机此时回来了,只能归并到新的主机下,当做从机,这就是哨兵模式的规则

    4,哨兵模式(小结)

    优点:

    1,哨兵集群,基于主从复制模式,所有主从复制优点,它全有(cp)

    2,主从可以切换,故障可以转移,系统的可用性就会更好

    3,哨兵模式是主从模式的升级,手动到自动,更加健壮!

    缺点:

    1,Redis不好在线扩容,集群容量一旦到达上限,在线扩容就十分麻烦

    2,实现哨兵模式的配置其实很麻烦的,里面有很多选择

    5,哨兵模式的全部配置

     不全,这个文件具体的可以在Redis解压目录能找到

      

  • 相关阅读:
    Python学习-第三天代码作业
    网络原理-1
    整理操作系统
    操作系统--开发语言--重点
    操作系统
    C#数组的声明方式
    string.Format对C#字符串格式化(转)
    C#中两个Form窗口之间的传值(父->子)(子->父) (转)
    opencv MatchTemplate()模板匹配寻找最匹配部分
    摄像头,图片筛选颜色
  • 原文地址:https://www.cnblogs.com/CL-King/p/14608727.html
Copyright © 2011-2022 走看看