在我的配置中,服务定义保存在/etc/consul.d/server
。
使用以下命令启动Consul:
consul agent -config-dir /etc/consul.d/server
启动领事时,没有注册任何服务。但是,可以使用具有相同定义文件的Web API注册相同的服务。
多个服务定义有什么问题,因为它们没有注册?
答案 0 :(得分:1)
你有多个文件吗?如果是这样 - >确保它们都以.json结尾。
此外,在加载配置时,Consul以词法顺序从文件和目录加载配置。例如,配置文件basic_config.json将在extra_config.json之前处理。稍后指定的配置将合并到先前指定的配置中。在大多数情况下,"合并"意味着更高版本将覆盖更早版本。在某些情况下,例如事件处理程序,合并会将处理程序附加到现有配置。为文档中的每个选项指定了精确的合并行为。
https://www.consul.io/docs/agent/options.html
否则尝试将所有服务定义放入一个json文件中。
使用配置文件中的services键。 (不是复数S)
$cards = [...];
$ranks = [];
// Count the cards for each rank
foreach ($cards as $card) {
if (!isset($ranks[$card['Rank']])) {
$ranks[$card['Rank']] = 0;
}
$ranks[$card['Rank']]++;
}
// Sort the cards array
usort($cards, function ($a, $b) use ($ranks) {
// If the cards count is the same for the rank, compare rank
if ($ranks[$a['Rank']] == $ranks[$b['Rank']]) {
return $a['Rank'] - $b['Rank'];
}
// Compare the card count for the rank
return $ranks[$a['Rank']] - $ranks[$b['Rank']];
});