Я экспериментирую с консулом и использую следующий Go API для регистрации службы у агента Консула:
import (
consul "github.com/hashicorp/consul/api"
)
//...
c, err := consul.NewClient(consul.DefaultConfig())
if err != nil {
return nil, err
}
serviceDef := &consul.AgentServiceRegistration{
Name: name,
Check: &consul.AgentServiceCheck{
TTL: ttl.String(),
},
}
if err := c.Agent().ServiceRegister(serviceDef); err != nil {
return nil, err
}
Теперь, когда я регистрирую пару экземпляров одного и того же услуга (backend
для дальнейшего использования) при звонке:
services, _, err := s.ConsulCatalog.Service("backend", "", nil)
if err != nil {
// ...
return
}
for _, v := range services {
log.Infof("service: %+v", v)
}
Я продолжаю получать только одну "услугу" с одним IP. Нужно ли раскручивать экземпляр агента Consul для каждого экземпляра службы?