MySQL高可用解决方案:从主从复制到InnoDB Cluster架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.1 可靠性

可靠性是系统实现高可用的目标之一,读者在了解什么是高可用之前,需要理解可靠性的概念。可靠性是指在一定时间内、一定条件下,使系统无故障地执行指定的功能,并使系统尽可能具有可访问性。可靠性是用户期望系统正常运行的程度,当用户需要系统工作时,系统能够正常工作,说明它的可靠性高;反之,用户需要系统工作时,系统无法正常工作,说明它的可靠性低。系统的可靠性越高、运行时间越长,表明系统具有越高级别的可用性。

可靠性可以通过多种方式来实现,因此,系统会产生不同级别的可靠性。以数据库为例,用户可以通过不同的技术和工具来提高可靠性,使数据库系统尽可能保持正常运行,并尽可能长时间提供数据,即尽可能延长正常运行时间。正常运行时间通常表示为系统运行时间的比率或百分比。

通常情况下,用户可通过以下三个原则来实现可靠性。

消除单点故障:尽可能减少使用的组件,如果单一组件发生故障,那么系统将无法继续使用。

增加恢复能力:建立多个主动冗余机制,通过冗余组件将系统从故障中快速恢复。

容错:增加主动故障检测,通过切换到冗余组件的机制进行自动恢复。

遵循以上三个原则,系统可以实现更高级别的可靠性,从而达到高可用。即使无须达到最大的高可用,通过实现这些原则,也可以使系统变得更加可靠。

实际上,可靠性用以度量系统在一段时间内的可操作性。高可用的定义为系统能够持续可操作,实际上它也是可靠性的级别。高可用性通常使用几个9的百分比来表示,5个9表示每年有99.999%的正常运行时间,每年的停机时间约为5.26分钟。99.99%的每年停机时间为52.6分钟,99.9%的每年停机时间为8.77小时。因此,当用户考虑系统的高可用时,需要重点考虑如何提高可靠性。