复原能力是指从暂时性故障中恢复的能力。 应用的恢复策略会恢复正常功能且将对用户的影响降到最低。 云环境中可能会发生故障,应用应以尽可能减少停机时间和数据丢失的方式做出响应。 理想情况下,你的应用可以在用户根本就觉察不到问题的情况下正常完成故障的处理。
由于微服务环境可能不稳定,因此在设计应用时要使其能够预期并处理部分故障。 部分故障的示例可能包括代码异常、网络中断、服务器进程无响应或硬件故障。 即使是计划内的活动(例如将容器移到 Kubernetes 群集中的其他节点)也可能会导致暂时性故障。
复原方法
在设计可复原的应用程序时,通常需要在快速失败和正常降级之间进行选择。 快速失败意味着应用程序会在出现问题时立即引发错误或异常,而不是尝试恢复或解决问题。 这样就可以快速识别和修复问题。 正常降级意味着即使某些组件发生故障,应用程序也会尝试保持以有限的容量运行。
在云原生应用程序中,服务必须正常处理故障,而不是快速失败。 由于微服务是分散的且可独立部署,因此预计会出现部分故障。 快速失败可导致因一个服务出现故障而快速关闭相关服务,从而降低整体系统复原能力。 而微服务则应进行相应编码,以便能够预测和容忍内部和外部服务故障。 这种正常降级允许整个系统继续运行,即使部分服务中断。 这样,面向用户的关键功能可以继续使用,避免完全中断。 正常故障还能让受干扰的服务有时间进行恢复或自我修复,而不