go-micro-demo/webClient2.go

47 lines
916 B
Go
Raw Normal View History

2024-08-24 13:02:16 +00:00
package main
import (
2024-08-24 14:58:36 +00:00
"context"
2024-08-24 13:02:16 +00:00
"fmt"
"log"
2024-08-24 14:58:36 +00:00
"github.com/micro/plugins/v5/client/http"
2024-08-24 13:02:16 +00:00
"github.com/micro/plugins/v5/registry/consul"
"go-micro.dev/v5/client"
"go-micro.dev/v5/registry"
"go-micro.dev/v5/selector"
"myschools.me/suguo/go-micro-demo/model"
2024-08-24 13:02:16 +00:00
)
func callAPI2(s selector.Selector) {
2024-08-24 14:58:36 +00:00
my := http.NewClient(
client.Selector(s),
client.ContentType("application/json"),
)
req := my.NewRequest("hello", `/v1/say`, &model.HelloRequest{
Times: 5,
})
var resp model.HelloResponse
2024-08-24 14:58:36 +00:00
if err := my.Call(context.Background(), req, &resp); err != nil {
log.Fatal(err)
}
for _, r := range resp.Data {
fmt.Printf("id=%d,name=%s\r\n", r.GetId(), r.GetName())
}
2024-08-24 14:58:36 +00:00
}
2024-08-24 13:02:16 +00:00
func main() {
consulReg := consul.NewRegistry(
registry.Addrs("127.0.0.1:8500"),
)
2024-08-24 14:58:36 +00:00
mySelector := selector.NewSelector(
selector.Registry(consulReg),
selector.SetStrategy(selector.RoundRobin),
)
2024-08-24 13:02:16 +00:00
callAPI2(mySelector)
2024-08-24 13:02:16 +00:00
}