1

我有一个领事集群,通常应该有 5 台服务器和一堆客户端。我们启动服务器的脚本最初是这样配置的

consul agent -server -bootstrap-expect 5 -join <ips of all 5 servers>

然而,我们不得不重新操作系统所有服务器并再次引导——我们的一台服务器因硬件问题而停机,引导不再工作。

我的问题是——在有 5 台服务器但 3 台足以满足法定人数的情况下,是否应该将 -bootstrap-expect 设置为 3?

这里的文档https://www.consul.io/docs/agent/options.html#_bootstrap_expect似乎暗示应该将 -bootstrap-expect 设置为服务器总数,这意味着即使单台机器停机也会阻止来自引导的集群

需要明确的是,我们的启动脚本是静态文件,所以当我说有 5 个服务器时,这意味着最多可以使用 server 标签启动 5 个。

4

1 回答 1

1

在您的情况下,如果您在初始集群设置期间没有明确要求所有 5 台服务器都在线,则应设置-bootstrap-expect为 3。这将避免类似于发生的情况,即您有 5 台服务器并且您告诉他们必须等待所有5 上线,用于初始集群设置。正如文档所示:

如果提供,Consul 会等待指定数量的服务器可用,然后引导集群。这允许自动选举初始领导者。

--bootstrap-expect=3一旦你的 5 台 Consul 服务器中的 3 台加入集群,领导者选举就会开始,如果最后 2 台晚加入,集群就会运行。就此而言,您可以在以后让任意数量的服务器加入。

于 2019-03-22T19:41:44.130 回答