这对您来说可能是一个非常基本的问题,但我只是进入领事并且出于测试目的,我想在我的PC上运行多个服务器。例如,我使用
运行第一个服务器consul agent -server -bootstrap-expect=1 -dc=dev -data-dir=/tmp/consul -ui-dir="c:/consul 0.5.2/dist"
然后我尝试用
运行第二个服务器consul agent -server -data-dir=/tmp/consul2 -dc=dc2
但它返回
==> Error starting agent: Failed to start Consul server: Failed to start RPC lay
er: listen tcp 0.0.0.0:8300: bind: Only one usage of each socket address (protoc
ol/network address/port) is normally permitted.
我的命令中缺少什么?
答案 0 :(得分:5)
您正在使用大多数默认值启动两个consul服务器。在这种情况下,问题是您使用默认端口。
当您阅读错误消息时,您会注意到您的第二个consul服务器尝试绑定到端口8300.但是您的第一个服务器已经在使用此端口,导致第二个服务器在启动时失败。 (注意:consul绑定到各种端口,每个端口都有其他用途和默认设置。请查看documentation)。
根据LenW的建议,您可以使用Vagrant来设置您的环境。您可以关注the consul tutorial。
如果您不想自己使用vagrant或设置任何虚拟机。您可以更改第二台服务器的默认值。
答案 1 :(得分:1)
如果您尝试在开发机器上模拟生产拓扑,我会考虑将Vagrant与VirtualBox结合使用来模拟几台机器进行测试。