快速失效系统

在系統設計中，Fail-fast系统（快速失效系统）是指一系統在可能會失效的情形下，會立刻透過其介面回報問題。Fail-fast系统的設計理念是在流程可能有缺陷時，會终止正常操作，不會试图继续执行。这种设计会在運作過程中多个节点检查系统状态，目的是為了尽早发现错误。Fail-fast模块的职责是检测错误，并将其交由直接上一级的系统进行处理。
 硬件和软件 
在以下几种情况下，快速失效系统或模块是可取的：

 Fail-fast 架构基于一种错误处理策略，其中任何检测到的错误或非预期状态都会导致系统快速失败。从某种意义上说，这种错误处理策略与容错系统中采用的策略相反。在容错系统中，错误处理策略通过引入冗余组件来应对，当某个组件发生故障时，将计算请求转移到正常运行的组件。看似矛盾的是，Fail-fast 系统实际上增强了容错系统的弹性。例如，对于一个数据库，即使有 10 台冗余服务器，但如果这10台服务器的共享配置被更新为错误的客户端身份验证数据，那么它们都会“冗余失效”。在这种情况下，Fail-fast 系统会确保所有 10 台冗余服务器尽快停机，从而促使DevOps迅速响应。
 Fail-fast 组件通常用于这样一种情况：由于延迟初始化，一个组件的错误可能不会被察觉，直到导致另一个组件发生致命错误。例如“由于文件系统路径设置错误而注定要失败的系统，是否会在启动时失败，因为在启动时没有检查文件系统路径。仅当客户端请求到达时，系统才会随机出现故障。
 在 Fail-fast 系统中，查找错误原因更容易，因为系统会尽可能接近错误发生的时间报告尽可能多的信息。在容错系统中，错误可能无法被发现；而在既不容错也非Fail-fast的系统中，错误可能会被暂时隐藏，直到它在后续引发一些看似无关的问题。
 Fail-fast 系统被设计为在发生错误时既停机又报告错误信息，从而降低执行不可逆或高成本错误操作的可能性。

Category:编程原则
Category:工程故障