理论实践
"海森bug"是一种在计算机编程中的术语,指的是那些在试图调试或检查时会改变行为或消失的bug。其名称源于量子力学中的海森堡不确定性原理,即我们无法同时准确知道一个粒子的位置和速度。
测试
混沌测试(Chaos Engineering)是一种软件测试方法,旨在发现分布式系统中的潜在故障和性能问题。它通过模拟各种异常条件和故障来测试系统的鲁棒性和可靠性。混沌测试通常会在生产环境中进行,以模拟真实世界的情况,以确保系统能够在各种异常和故障情况下正常运行。
以下是混沌测试的一些最佳实践:
选择合适的混沌工具:选择一个适合你的系统的混沌工具,如 Chaos Monkey、Pumba、Gremlin 等。
定义测试场景:定义测试场景是非常重要的。这有助于你了解你要测试什么、如何测试以及你要实现什么目标。
先从小规模的测试开始:在开始混沌测试之前,先从小规模的测试开始,并逐步增加测试的复杂性和规模。
测试和监控系统:在进行混沌测试时,需要监控系统的各种指标,如 CPU 使用率、内存使用率、网络延迟等。
记录和分析测试结果:对测试结果进行记录和分析是非常重要的。这可以帮助你发现问题并做出相应的改进。
恢复系统:在进行混沌测试时,需要有充分的准备来恢复系统。这可以帮助你在测试过程中快速恢复系统,并确保不会对生产环境造成任何负面影响。
一致性语义
Four options for RPC semantics:
Naive (above, broken, no guarantees)
At least once (NFS, DNS, lab 1b, only possible if you are willing to block forever in the case that the network goes down permanently or the server goes down permanently)
At most once (common)
Exactly once (lab 1c, only possible if you are willing to block forever in the case that the network goes down permanently or the server goes down permanently)
实践
分布式系统设计中,有一条很重要的原则就是:为失败而设计,错误一定会发生。 为了防止系统出现级连失败,我们需要对依赖的服务所能够使用的资源做一定限制,保护应用本身。Hystrix的容错架构如下:

最后更新于
这有帮助吗?