0

我在寻找Reactive和Resilient之间的区别。Reactive和Resilient有什么区别?

我经历了几篇文章,但这些让我有些清楚,但与外交解释混淆很多。

我的理解弹性的意思是,如果同一个服务的实例的数量增加时请求的数量增加。同样,如果请求较少,则会减少。所以,即使有多少个实例在增加或减少,其稳定状态的容易和快速也被称为弹性。

我对无效没有明确的想法。

回答

1

弹性是反应系统的一个特性,如Reactive Manifesto中所定义。换句话说,反应性是一个比韧性更广泛的术语。

你对弹性的理解听起来更像是反应系统的另一个属性:弹性。的分别elasticityscalability,宣言的定义,以及这两者之间的关系,如下:

弹性(相对于可扩展性)

弹性意味着,系统的吞吐量可扩展至或随着资源按比例添加或移除而自动降低以满足不同的需求。系统需要具有可伸缩性(请参阅可伸缩性),以便在运行时动态添加或删除资源。弹性因此建立在可扩展性上,并通过添加自动管理的概念扩展它。


伸缩性

的系统的利用的更多的计算资源,以提高其性能的能力由吞吐量增益的比率的资源的增加。一个完美可扩展的系统的特点是两个数字成正比:双重资源分配将使吞吐量翻倍。可扩展性通常受到系统内瓶颈或同步点的引入的限制,导致可伸缩性受限,请参阅Amdahl’s Law and Gunther’s Universal Scalability Model

0

根据the reactive manifesto你混淆了这两个概念是不同的。一种反应系统具有4个属性:

  • 响应

  • 弹性

  • 弹性

  • 消息驱动

因此,反应系统是弹性的,没有“差异”。

的宣言定义弹性为:

弹性:系统停留在响应失败的脸。这个 不仅适用于高度可用的任务关键型系统 - 任何不具有弹性的系统在失败后都将无响应。 通过复制,包容,隔离和代理实现弹性。每个组件中都包含故障,将组件彼此隔离,从而确保系统的各个组件可以在发生故障和恢复时不会将整个系统作为整个系统进行妥协。将每个组件的恢复委托给另一个(外部)组件,并通过复制确保高可用性,其中 是必需的。组件的客户端不负担处理其 失败的负担。

但是,如果弹性系统缺少其他3个属性,它可能不是“反应性”的。例如:一个系统可能对故障具有弹性,但对增加需求不具弹性,因此不具有响应性。