123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package main
- /**
- 客户端调用
- */
- import (
- "app.yhyue.com/BP/servicerd/proto"
- "app.yhyue.com/BP/servicerd/util"
- "context"
- "flag"
- "google.golang.org/grpc"
- "log"
- "sync"
- )
- //服务地址配置
- var (
- rdserver = flag.String("rd", "192.168.3.240:10021", "服务治理地址")
- balancetype = flag.Int("balance", 0, "负载策略 0=随机 1=服务器压力均衡 2=轮训占用")
- threads = flag.Int("threads", 20, "压力并发数")
- requests = flag.Int("reqs", 100, "单个线程服务请求次数")
- )
- var cu *util.ClientUtil
- func init() {
- flag.Parse()
- var err error
- cu, err = util.NewClient(*rdserver)
- if err != nil {
- panic(err)
- }
- }
- func run(thread int, wg *sync.WaitGroup) {
- defer func(wg *sync.WaitGroup) {
- wg.Done()
- }(wg)
- for i := 0; i < *requests; i++ {
- _, _ = cu.Run("demo", 10, func(conn *grpc.ClientConn, args ...interface{}) (interface{}, error) {
- demo_client := proto.NewDemoServiceClient(conn)
- demo_repl, err := demo_client.Say(context.Background(), &proto.DemoReq{
- Name: "张三",
- })
- if err != nil {
- log.Println(err.Error())
- } else {
- log.Println("back::", thread, demo_repl.Data)
- }
- return nil, nil
- })
- }
- }
- func main() {
- wg := new(sync.WaitGroup)
- for i := 0; i < *threads; i++ {
- wg.Add(1)
- go run(i, wg)
- }
- wg.Wait()
- log.Println("all ok")
- }
|