容错,高可用、灾备这三个词的使用环境极易被混淆。
很多时候以为这三个词的意思是相同的。
容错机制:主要是为了保持系统的使用。
在发生问题故障的时候,系统依然能使用运行。
汽车的一个轮子扎破了,剩下三个轮子,也还是勉强能行驶。
一个led的广告牌可能有几个灯泡损坏,但不影响广告的表达。
代码编写中的try-catch逻辑。即使发生错误,将错误信息捕获,系统不会因此崩溃,还能继续使用。
有些服务会进行多项分布式的部署,其中一个节点的不可用不会导致整个服务的不可用,其它节点会支持服务的运行。
容错的目的就是发生故障的时候,系统运行的能力水平可能会下降,但依然是可用的。
高可用:指系统能够比正常时间更久地保持一定的运行水平。
示例:备胎延长了汽车行驶的可用时间。
很多系统服务会在发布的时候,有一个正式服务器提供服务,同时设置一个备机。一旦正式服务发生故障,可以及时切换到备机提供服务。
高可用是指一旦中断能够快速恢复,即中断必须是短暂的。如果需要很长时间才能恢复可用性,就不叫高可用了。
灾备指发生灾难时恢复业务的能力。
灾备的目的就是,保存系统的核心部分。一个好的灾备方案,就是从失败的基础设施中获取企业最宝贵的数据,然后在新的基础设施上恢复它们。
注意,灾备不是为了挽救基础设置,而是为了挽救业务。
总之,
容错要思考发生故障时,如何让系统继续运行。
高可用要思考,系统中断时,如何尽快恢复。
灾备要思考,系统毁灭时,如何抢救数据。