Consul 出现时没有注册服务

Consul not registering services when it comes up

在我的配置中,服务定义保存在 /etc/consul.d/server

Consul 使用以下命令启动:

consul agent -config-dir /etc/consul.d/server

consul 启动时,none 服务被注册。但是,可以使用具有相同定义文件的 Web API 注册相同的服务。

未注册的多个服务定义有什么问题?

您有多个文件吗?如果是 -> 确保它们都以 .json.

结尾

此外,在加载配置时,Consul 按词法顺序从文件和目录加载配置。例如,配置文件 basic_config.json 将在 extra_config.json 之前处理。后面指定的配置将合并到前面指定的配置中。在大多数情况下,"merge" 意味着较新的版本将覆盖较早的版本。在某些情况下,例如事件处理程序,合并会将处理程序附加到现有配置。文档中为每个选项指定了确切的合并行为。

https://www.consul.io/docs/agent/options.html

否则尝试将所有服务定义放入一个 json 文件中。

使用配置文件中的服务密钥。 (不是复数 S)

{
  "services": [
    {
      "id": "red0",
      "name": "redis",
      "address": "127.0.0.1",
      "port": 6000,
    },
    {
      "id": "red1",
      "name": "redis",
      "address": "127.0.0.1",
      "port": 7000,
    },
  ]
}