【发布时间】:2018-01-19 08:28:53
【问题描述】:
我有一个采用分布式系统架构设计的应用程序。我想测试我的应用程序的可用性,但我是新手。谁能告诉我,这样做更好吗?测试高可用性时首选使用哪些原则?
【问题讨论】:
-
关闭(或以其他方式使无法访问)分布式系统中的一些节点。然后检查它是否仍然正常运行(没有升高的错误率、响应时间等)。这是该技术的要点。
我有一个采用分布式系统架构设计的应用程序。我想测试我的应用程序的可用性,但我是新手。谁能告诉我,这样做更好吗?测试高可用性时首选使用哪些原则?
【问题讨论】:
我负责构建、测试和维护多个分布式系统。出于理智和自动化的考虑,我们的大部分测试都是在单元测试环境中完成的。
我们所做的是将网络和时钟存根,以便我们的测试可以在必要时向前推进。这意味着我们的网络和时钟被注入,我们可以在一个测试中运行多个节点。
我们将这种类型的测试称为交互测试。
注意:全局变量和单例不适合这种类型的测试。
我们为网络存根保留的功能包括: * 删除消息的能力——尤其是一对给定节点之间的所有消息。 * 能够选择要传递的消息
我们为时钟存根保留的功能包括: * 时间只会向前移动(我们将系统设计为仅使用纳米时钟,而不是挂钟)。
【讨论】: