https://en.wikipedia.org/wiki/Robustness_principle
Be conervative in what you do, be liberal in what you accept from others (often reworded as "Be conservative in what you send, be liberal in what you accept").
In tcp: In other words, code that sends commands or data to other machines (or to other programs on the same machine) should conform completely to the specifications, but code that receives input should accept non-conformant input as long as the meaning is clear.
容错技术介绍
Be conervative in what you do, be liberal in what you accept from others (often reworded as "Be conservative in what you send, be liberal in what you accept").
容错技术介绍
容错按系统级别划分,分为三个级别,硬件容错、软件容错以及系统容错。硬件容错常用的方法包括使用冗余、多备份技术、增加内存、能源系统冗余等。硬件错误通常能够够在两个物理机上进行隔离处理。软件容错主要是正对软件的鲁棒性特征进行增强。常见的方法有checkpoint/restart,recovery blocks,N-Version Programs等。对于系统容错,设计一个独立与目标系统的子系统,通过定义定义规则来容忍系统
缺陷
。对缺陷
的处理,有以下几类技术:- 使用
缺陷避免
技术来避一些错误。使用成熟的设计方法论、验证以及确认方法论、代码检查、上线前的演练等。 - 在可能会存在的
缺陷
时,可以选择缺陷移除
技术,例如测试、集成测试、回归测试、背靠背测试等; - 或者是在遭遇错误是,
缺陷回避
的方式,是的潜在的缺陷
不会被激活。常见技术是通过重新配置系统来达到避免的目标; 缺陷容忍
技术,系统能够对缺陷
进行侦测、诊断、孤立、覆盖、不错、以及系统恢复。使用以上多种技术混合。
2. Graceful Degradation
在系统遭遇某个错误不能提供完整功能,系统可以降低自己服务能力。
上述
backup()
方法中while
循环中waitpid
需要等待到child创建成功。可能永远不会成功,需要改进。3. Selective Retry
重复调用仅当有机会重试成功。例如,内存短缺消失;主要针对突然地高负载资源短缺。它能够增加资源分配成功的可能性