12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package main
- /**
- 客户端调用
- */
- import (
- "app.yhyue.com/BP/servicerd/proto"
- "context"
- "flag"
- "google.golang.org/grpc"
- "log"
- "sync"
- )
- //服务地址配置
- var (
- rdserver = flag.String("rd", "127.0.0.1:10021", "服务治理地址")
- )
- var client proto.ServiceClient
- func init() {
- flag.Parse()
- conn, err := grpc.Dial(*rdserver, grpc.WithInsecure())
- if err != nil {
- return
- }
- client = proto.NewServiceClient(conn)
- }
- func run(thread int, wg *sync.WaitGroup) {
- defer func(wg *sync.WaitGroup) {
- wg.Done()
- }(wg)
- for i := 0; i < 200; i++ {
- repl, err := client.Apply(context.TODO(), &proto.ApplyReqData{Name: "demo", Balance: 0})
- if err != nil {
- log.Println("出错了")
- log.Fatalln(err.Error())
- }
- log.Println("结果", thread, repl.Addr, repl.ResourceId)
- //TODO 业务调用
- conn, err := grpc.Dial(repl.Addr, grpc.WithInsecure())
- if err != nil {
- return
- }
- defer conn.Close()
- demo_client := proto.NewDemoServiceClient(conn)
- demo_repl, err := demo_client.Say(context.TODO(), &proto.DemoReq{
- Name: "张三",
- })
- if err != nil {
- log.Println(err.Error())
- } else {
- log.Println("back::", thread, demo_repl.Data)
- }
- //只有使用SEQ负载模式,需要调用释放资源
- /*
- release_repl, err := client.Release(context.TODO(), &proto.StringReqData{Data: repl.ResourceId})
- if err != nil {
- log.Println("出错了")
- log.Fatalln(err.Error())
- } else {
- log.Println(thread, release_repl.Data)
- }*/
- }
- }
- func main() {
- wg := new(sync.WaitGroup)
- for i := 0; i < 5; i++ {
- wg.Add(1)
- go run(i, wg)
- }
- wg.Wait()
- log.Println("all ok")
- }
|