高可用 原理+实践

参考:

高可用集群--原理和技术总结_鼓浪屿岛与海的博客-CSDN博客_高可用性集群技术

目录

高可用目的

高可用集群解决的问题

例子:Nginx+keepalived 实现高可用集群

例子:Redis的几种高可用集群方案 - 随彦心MO - 博客园

高可用原理

(1)自动侦测(Auto-Detect)阶段

(2)自动切换(Auto-Switch)阶段

(3)自动恢复(Auto-Recovery)阶段

 高可用集群和负载均衡集群区别?

Redis具体的集群配置

Redis主从复制

主从复制原理

优点

缺点

哨兵模式

哨兵模式的优缺点

Redis集群

优点

缺点


高可用目的

集群的高可用特性的目的:当集群中某个节点服务器出现宕机时,通过前端服务器的分发器检测到从而将该出现故障节点服务器的请求转发到另一个正常工作的节点服务器上,从而提高了集群的高可用的能力

高可用集群解决的问题

(1)对于服务而言,一旦某个机器宕机,就会将服务自动转移到其他可用的服务器上

例子:Nginx+keepalived 实现高可用集群

(2)对于数据而言,如果某个磁盘损坏,就会从备份的磁盘 (事先做好了数据同步复制)读取数据

例子:

高可用原理

       高可用集群实现的原理主要是 自动侦测(Auto-Detect)故障、自动切换/故障转移(FailOver)和自动恢复(FailBack)。

通过自动侦测实时地发现故障节点,

通过 自动切换/故障转移 快速地将检测的故障节点的请求转发到其他正常工作的节点服务器上,在正常工作的节点服务器代替故障服务器工作时,故障主机进入自动修复阶段,可离线进行修复工作,

在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。

(1)自动侦测(Auto-Detect)阶段

由主机上的软件通过冗余侦测线,经由复杂的监听程序。逻辑判断,来相互侦测对方运行的情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据库引擎及其它应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。

(2)自动切换(Auto-Switch)阶段

某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务。

(3)自动恢复(Auto-Recovery)阶段

在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。整个回复过程完成由EDI-HA自动完成,亦可依据预先配置,选择回复动作为半自动或不回复。

 
高可用集群和负载均衡集群区别?

(1)高可用集群的节点一般是一主一备,或一主多备

(2)负载均衡一般是多主,每个节点都负担流量
 

Redis具体的集群配置

Redis主从复制

主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主

主从复制原理

l Slave启动成功连接到master后会发送一个sync命令

l Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次全量复制

l 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

l 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步

l 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行
主从复制优缺点

摘自:Redis集群的 3 种方式,各自优缺点分析! - 知乎


优点

    支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
    Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。
    Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
    Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据

缺点

    Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
    主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。
    Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。

哨兵模式

主从复制 设置哨兵,如果主机down掉那么从机上位。

Redis-server.exe sentinel.conf --sentinel

能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

哨兵模式的优缺点

优点

    哨兵模式是基于主从模式的,所有主从的优点,哨兵模式都具有。
    主从可以自动切换,系统更健壮,可用性更高。

缺点

    Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。

Redis集群

redis的哨兵模式基本已经可以实现高可用,读写分离 ,但是在这种模式下每台redis服务器都存储相同的数据,很浪费内存,所以在redis3.0上加入了cluster模式,实现的redis的分布式存储,也就是说每台redis节点上存储不同的内容。

Redis 集群实现了对Redis的水平扩容,即启动N个Redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。

Redis 集群通过分区(partition)来提供一定程度的可用性(availability):即使集群中有一部分节点失效或者无法进行通讯,集群也可以继续处理命令请求。

优点

扩容,容灾,分摊压力


缺点

方案没有被目前的公司广泛部署,因为大都采用 代理模式
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trigger333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值