4.(服务发现1)获取consul服务列表,selector随机选择

我们会使用主站api调用商品api

使用go-micro访问consul获取服务信息

package main

import (
    "fmt"
    "github.com/micro/go-micro/client/selector"
    "github.com/micro/go-micro/registry"
    "github.com/micro/go-plugins/registry/consul"
    "log"
)

func main() {
    consulReg := consul.NewRegistry( //新建一个consul注册的地址,也就是我们consul服务启动的机器ip+端口
        registry.Addrs("localhost:8500"),
    )
    getService, err := consulReg.GetService("prodservice") //使用服务名获取服务
    if err != nil {
        log.Fatal(err)
    }
    next := selector.Random(getService) //如果getService有多个服务,随机取一个出来localhost:8080/v1/user,localhost:8081/v1/user
    node, err := next()                 //type Next func() (*registry.Node, error)
    if err != nil {
        log.Fatal()
    }
    fmt.Println(node.Id, node.Address, node.Metadata) //可以看到我们的id address还有metadata

}

执行结果





posted @ 2019-12-25 16:09  离地最远的星  阅读(2612)  评论(0编辑  收藏  举报