我们之前讲过故障隔离,它的目的是对故障组件进行隔离,以避免影响系统中的其他组件,尽可能保证分布式系统的可用性。
但是之后故障隔离还不够,我们需要考虑进行故障恢复。
分布式系统中的故障,可以分为两类:
我们可以对故障进行分类讨论,包括:
故障检测,是指通过一定的方式识别或者发现故障。
在分布式系统中,检测硬件故障通常会比较复杂,因此是通过查看软件层的表现结果进行故障检测。
故障检测,通过一定方式来识别或者发现故障。
在分布式系统中,检测硬件故障通常比较麻烦因此会通过软件层的表现结果进行故障检测。
故障恢复,是指修复分布式系统中出现的故障,使系统恢复正常。
在分布式系统中,常见的故障检测方法就是心跳机制,我们可以把它分为两类:
对于单点故障问题,往往采取主备策略,即当主节点故障后,从备节点中选出一个作为新的主节点。以继续提供服务。
对于网络故障问题的解决方案,简单来说就是C、A、P选择的问题。
当分布式系统中出现网络故障时,对于高可用性要求严格的系统,会要求必须及时响应用户的场景,就需要保AP放弃C的策略,对于数据一致性有严格要求的系统,就需要保CP放弃A的策略。
网络恢复问题也可以看做是数据恢复问题,即网络故障恢复之后节点之间数据进行同步的问题。
上一篇:学习C++这几个网站足矣
下一篇:B树与B+树