我正在努力了解Docker Swarm模式下replica实例的概念。我已经读到它是一项有助于提高可用性的功能。

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

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

最佳答案



让我们以包含单个实例的副本为例。现在,假设有一个失败。 Docker Swarm将注意到该服务失败并重新启动它。该服务将重新启动,但是重新启动不是即时的。假设重新启动需要5秒钟。在这5秒钟内,您的服务不可用。单点故障。

如果您的副本包含3个实例怎么办。现在,当其中一个失败(没有完美的服务)时,Docker Swarm将注意到其中一个实例不可用,并创建一个新实例。在这段时间内,您仍然有2个运行正常的实例来处理请求。对于您的服务的用户,似乎没有停机时间。该组件不再是单点故障。

10-07 13:12
查看更多