import (
"fmt"
"github.com/micro/go-micro/client/selector"
"github.com/micro/go-micro/registry"
"github.com/micro/go-plugins/registry/consul"
"io/ioutil"
"log"
"net/http"
)
func main() {
consulReg:=consul.NewRegistry(
registry.Addrs("127.0.0.1:8500"))
getService,err:=consulReg.GetService("product")
if err!=nil{
log.Fatal("err")
}
next:=selector.RoundRobin(getService)
node,err := next()
if err!=nil{
log.Fatal("err")
}
// path:路由地址,method:请求方式,address:服务器地址
data,err:=callAPI(node.Address,"/v1/prods","GET")
fmt.Println(data)
}
func callAPI(addr string,path string,method string) (string,error) {
req,_:=http.NewRequest(method,"http://"+addr+path,nil)
client:=http.DefaultClient
res,err:=client.Do(req)
if err!=nil{
return "",err
}
defer res.Body.Close()
buf,_:=ioutil.ReadAll(res.Body)
return string(buf),nil
}