我是领事中的新手。在我的情况下,我有三台服务器。所有服务器都处于调优状态。 当我使用以下网址“ http://localhost:8500/v1/status/leader”检查领导者信息时,获取正确的信息
"192.168.10.7:8300"
领事\数据\筏具有以下信息
我可以在堆栈中看到一些答案。它没有帮助我。 也尝试执行以下命令
-bootstrap-expect=3
显示下面给出的错误
错误日志
Consul request failed with status [500]: No cluster leader
我完全被困住了。我该如何解决此问题
答案 0 :(得分:2)
使用docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp --name node1 -h node1 progrium/consul -server -bootstrap-expect 3
由于我们给出了期望3,这意味着它首先寻找三个对等方,然后它将引导服务器。
1. docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp --name node1 -h node1 progrium/consul -server -bootstrap-expect 3
docker inspect -f '{{.NetworkSettings.IPAddress}}' node1
Use the inspected IP to join with, in next three commands.
2. docker run -d --name node2 -h node2 progrium/consul -server -join 172.17.0.2
3. docker run -d --name node3 -h node3 progrium/consul -server -join 172.17.0.2
4. docker run -d --name node4 -h node4 progrium/consul -server -join 172.17.0.2
您现在可以启动服务,它将与领事联系。
说明:-
作为said in docs ,在Consul群集可以开始为请求服务之前,必须将服务器节点选为领导者。这是在启动spring-boot服务时导致领导者例外的原因。还没有当选!
为什么没有选出领导人?群集中涉及的服务器列表应被引导。并且可以使用以下命令引导服务器
-bootstrap-expect
配置选项。 推荐
注意:-仅出于测试/学习目的,您可以继续创建单个服务器,因为强烈建议不要部署单个服务器,因为在故障情况下不可避免地会丢失数据。