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