网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Sentinel节点会周期性的向Redis节点发送心跳消息(10s一次向master节点发送心跳,1s一次向从节点和sentinel集群的其他salve节点发送心跳,2s一次广播当前的master信息和sentinel集群的信息)。
当Sentinel集群检测到Redis的Master节点故障,就需要通过在Sentinel内投票,如果投票通过,则将目标的节点执行failover切换。
优点:官方推荐的方案;
缺点:Sentinel1已经废弃,Sentinel2目前在rewrite阶段,有稳定版本;Sentinel集群至少需要部署3个实例。这样就不利于sentinel部署了,如果我们规定只有两个Redis节点,Sentinel节点就不能部署在Redis节点上,必须找其他的节点来部署,这样部署起来就比较
麻烦一些。
Keepalived方案
利用Linux官方的Keepalived软件做load balance和HA。主要原理是Keepalived会监控Master和Slaver节点。当主节点故障时,会利用VRRP协议,将IP切换到Slave节点。
优点:非官方方案,但是使用比较广泛,有比较成熟的redis_check.sh, redis_master.sh, redis_backup.sh, redis_fault.sh, redis_stop.sh脚本;Keepalived可以随Redis部署,不需要额外的节点,组网比较简单。
缺点:安装部署需要引入一个新的软件Keepalived。
参考引用
- 本文同步至: https://waylau.com/redis-master-slave/
- 分布式系统常用技术及案例分析:https://github.com/waylau/distributed-systems-technologies-and-cases-analysis
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**