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,
},
]
}
在我的配置中,服务定义保存在 /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,
},
]
}