使用go语言根据微服务名称获取consul的微服务的时候,为什么是services啊?然后metainfo.LastIndex?

发布于 2022-09-13 00:44:49 字数 884 浏览 22 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文