У меня зарегистрирован следующий консульский сервис.
curl -s -X GET http://<CONSUL_URL>/v1/catalog/service/myservice | jq .
[
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.28",
"Node": "myservice-one"
},
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.28",
"Node": "myservice-main"
},
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.26",
"Node": "myservice-two"
},
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.27",
"Node": "myservice-three"
}
]
curl -s -X GET http://10.3.6.21:8500/v1/catalog/node/myservice-main | jq .
{
"Services": {
"myservice": {
"Port": 0000,
"Address": "",
"Tags": null,
"Service": "myservice",
"ID": "myservice"
}
},
"Node": {
"Address": "10.3.6.28",
"Node": "myservice-main"
}
}
Как показано здесь, у меня есть узел myservice-main в службе myservice, которая у меня есть. Я хочу выполнить некоторые конкретные действия при изменении адреса myservice-main. Я читал, что часы консула могут быть полезны для достижения этого, но я не могу написать команду curl для того же. Может ли кто-нибудь указать мне на http API, который я могу использовать для выполнения моего требования? Я могу использовать только HTTP API (curl) и сценарий оболочки, поскольку я хочу сделать это из удаленной системы.