常见的服务端异常总结

154 阅读1分钟

⽹络连接丢失

最常见的故障之一是失去网络连接。连接丢失可能发生在整个请求周期内,甚至在组件之间的应用程序内部,如数据库连接断开。自我修复这些故障的最佳方法是创建重试机制,增加短时间内恢复的机会。

缺乏可扩展性

当应用程序上的请求数高于它可以处理的数量时,应用程序开始失败或无法处理请求。决方案是使应用程序具有可横向扩展的能力。考虑可伸缩性的最佳时间点是在架构设计时(设计包含所有组件的应用程序时)。比如使用基于容器的架构和工具,如 Kubernetes、阿里云的SEA。

长时间运行的事务

长时间运行的事务会发生失败,每次失败后,事务从头开始。解决方案时引入ACID的概念,也就是做到事务的最终一致性。

服务器实例down机

如果无法访问应用程序的一个实例,唯一的解决方案是进行另一个实例故障转移。这应该是在设计阶段考虑的事情,并应根据需要添加或删除实例。所以,如果实例是数据库,可以复制到其他实例以进行故障转移。如果实例是应用程序,您可以使用负载均衡器或任何流量分发服务并在其后面添加实例。目前,所有云提供商都支持此功能作为高可用性。