在Docker Swarm模式下使用副本的主要优点是什么?

时间:2017-01-03 17:50:33

标签: docker docker-swarm-mode

我很难理解Docker Swarm模式中replica个实例的想法。我已经读过它是一个有助于提高可用性的功能。

但是,如果一个节点发生故障,即使为服务定义了1 replica,Docker也会自动在另一个节点上启动新任务,这也提供了高可用性。

那么,对于任意服务,拥有3个replica个实例而不是1的优势是什么?我的假设是,如果有更多副本,Docker会在发生故障时花费更少的时间在另一个节点上创建新实例,这有助于提高性能。这是对的吗?

2 个答案:

答案 0 :(得分:6)

  

What Makes a System Highly Available?

     

高可用性的目标之一是消除单点   您的基础设施失败。单点故障是一个   技术堆栈中可能导致服务的组件   如果它不可用则中断。

让我们举一个由单个实例组成的副本示例。现在让我们假设失败了。 Docker Swarm会注意到服务失败并重新启动它。服务重新启动,但重启不是即时的。让我们说重启需要5秒钟。这5秒钟您的服务不可用。单点故障。

如果您的副本包含3个实例,该怎么办?现在,当其中一个失败(没有服务是完美的)时,Docker Swarm将注意到其中一个实例不可用并创建一个新实例。在此期间,您仍有2个健康实例提供请求。对于您的服务用户,似乎没有停机时间。该组件不再是单点故障。

答案 1 :(得分:0)

ROMANARMY的回答非常好,我只想提及这些副本可以位于不同的节点上,因此,如果您的一台服务器出现故障(变得不可用),则另一台服务器上的容器(副本)可以正常运行。