将数据写入领事时找不到领事负责人

时间:2019-08-22 06:56:12

标签: consul consul-template

我是领事中的新手。在我的情况下,我有三台服务器。所有服务器都处于调优状态。 当我使用以下网址“ http://localhost:8500/v1/status/leader”检查领导者信息时,获取正确的信息

"192.168.10.7:8300"

领事\数据\筏具有以下信息

enter image description here

我可以在堆栈中看到一些答案。它没有帮助我。 也尝试执行以下命令

-bootstrap-expect=3

显示下面给出的错误

enter image description here

错误日志

Consul request failed with status [500]: No cluster leader

我完全被困住了。我该如何解决此问题

1 个答案:

答案 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配置选项。 推荐

注意:-仅出于测试/学习目的,您可以继续创建单个服务器,因为强烈建议不要部署单个服务器,因为在故障情况下不可避免地会丢失数据。