昨天小咸儿突然被问到什么是高可用?听到这个问题一瞬间有些懵懵的,就简单的回答了“代码的健壮性和可重用性”,最后自己去查了查才发现自己的回答和真相相差甚远啊!所以特地来总结一篇简单的高可用的叙述。
百度百科:“高可用性”(High Avaliability)通常来描述一个系统经过专门的设计,减少停工时间,而保持其服务的高度可用性。
计算机的高可用性
计算机系统的高可用性用平均无障碍时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才发生一次故障。系统的可用性越高,平均无故障时间越长。可维护性用平均维修时间(MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费的时间,系统的可维护性越好,平均维修时间越短。计算机系统的可用性定义为:MTTF/(MTTF+MTTR)*100%。由此可见,计算机系统的可用性定义为系统保持正常运行时间的百分比。
负载均衡服务的高可用性
为了屏蔽负载均衡服务器的失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序,通过传送诸如“I am alive”这样的信息 来监控对方的运行状况。当备份机不能再一定的时间内收到这样的信息时,他就接管主服务器的服务IP并继续提供服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,她就释放服务IP地址,这样的主管理器就开始再次进行集群管理的工作了。为在主管理器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步与备份,保持二者系统的基本一致。
所以说高可用和负载均衡是分不开的,而且单点是系统高可用的大敌,应该尽量在系统设计的过程中避免单点。高可用保证的原则是“集群化”,或者说是“冗余”:只有一个单点,挂了服务就会收到影响;如果有备份的话,就算是挂了也会有其他的服务能够顶上。
在此,小咸儿特地推荐两篇博客,写的都非常的棒!(๑•̀ㅂ•́)و✧
参考资料: