解决方案架构师修炼之道
上QQ阅读APP看书,第一时间看更新

3.3 容错和冗余

在上一节中,我们了解了容错和高可用性之间有着密切的关系。高可用性意味着应用程序对用户来说总是可用的,但是应用程序的性能可能会降低。假设你需要4台服务器来处理用户流量。为此,你在2个物理隔离的数据中心分别放置了2台服务器。如果一个数据中心发生故障,另一个数据中心仍然可以处理用户流量,但是只有两台服务器,这意味着此时的容量为原始容量的50%,用户可能会遇到性能问题。在这种情况下,虽然应用程序具有100%的高可用性,但却仅有50%的容错能力。

容错能力是指在发生中断的情况下能够继续处理工作负载而不损害系统性能的能力。100%容错的架构会因为增加的冗余度导致高额的成本。容错能力的规划取决于应用程序的重要性,即用户群在应用程序恢复期间可以承受多大程度的性能下降。

图3-5 容错架构

如图3-5所示,应用程序需要4台服务器来处理全部的工作负载,它们被分配到了2个不同的区域。图3-5中的两种方案都可以保持100%的高可用性。

要实现100%的容错能力,需要完全冗余并且维护双倍的服务器数量,这样即便一个区域发生中断,用户也不会遇到任何性能问题。而在服务器数量不变的情况下,只能获得50%的容错能力。

在设计应用程序架构时,解决方案架构师需要判断应用程序用户群的性质,只在有必要时才规划100%的容错能力,确保高容错能力带来的好处可以抵消额外的冗余成本。