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

}

执行结果






免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM