使用go语言根据微服务名称获取consul的微服务的时候,为什么是services啊?然后metainfo.LastIndex?
var lastIndex uint64
config := consulapi.DefaultConfig()
config.Address = "127.0.0.1:8500"
client, err := consulapi.NewClient(config)
if err != nil {
fmt.Println("api new client is failed, err:", err)
return
}
services, metainfo, err := client.Health().Service("serverNode", "v1", true, &consulapi.QueryOptions{WaitIndex: lastIndex, // 同步点,这个调用将一直阻塞,直到有新的更新
})
if err != nil {
log.Fatalf("error retrieving instances from Consul: %v", err)
}
lastIndex = metainfo.LastIndex
addrs := map[string]struct{}{}
for _, service := range services {
fmt.Println("service.Service.Address:", service.Service.Address, "service.Service.Port:", service.Service.Port)
addrs[net.JoinHostPort(service.Service.Address, strconv.Itoa(service.Service.Port))] = struct{}{}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论