Reactive和Resilient有什么区别?

时间:2017-12-27 12:31:47

标签: parallel-processing akka reactive-programming distributed-computing distributed-system

我正在寻找Reactive和Resilient之间的区别。

我阅读了几篇文章,但这些文章让我有些清楚,但对外交解释却很困惑。

我理解的 弹性 意味着,如果请求数量增加,同一服务的实例数量会增加。同样,如果请求较少,则会减少。因此,即使实例数量增加或减少,它达到稳定状态的容易程度和速度也称为弹性状态。

我不清楚 Reactive

2 个答案:

答案 0 :(得分:2)

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

您对弹性的理解听起来更类似于反应系统的另一个属性:弹性。宣言对elasticityscalability的定义以及两者之间的关系如下:

  

弹性(与可伸缩性相反)

     

弹性意味着系统的吞吐量会自动向上或向下扩展,以满足不同的需求,因为资源按比例添加或删除。系统需要具有可伸缩性(请参阅可伸缩性),以使其能够在运行时动态添加或删除资源。因此,弹性建立在可扩展性的基础上,并通过添加自动resource管理的概念进行扩展。

  

<强>可扩展性

     

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

答案 1 :(得分:0)

根据the reactive manifesto,你将这两个概念混为一谈。反应系统有4个属性:

  • 响应

  • 弹性

  • 弹性

  • 消息驱动

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

宣言将弹性定义为:

  

有弹性:系统在出现故障时保持响应。这个   不仅适用于高可用性,关键任务系统 - 任何   失败后,没有弹性的系统将无法响应。   通过复制,遏制,隔离和恢复来实现恢复力   代表团。故障包含在每个组件中,孤立   彼此之间的组件,从而确保部分   系统可以在不损害系统的情况下发生故障和恢复   整个。每个组件的恢复被委托给另一个(外部)   通过复制确保组件和高可用性   必要。组件的客户端不会负担处理它的负担   故障。

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