|
@@ -5,6 +5,7 @@ package main
|
|
|
*/
|
|
|
import (
|
|
|
"app.yhyue.com/BP/servicerd/proto"
|
|
|
+ "app.yhyue.com/BP/servicerd/util"
|
|
|
"context"
|
|
|
"flag"
|
|
|
"google.golang.org/grpc"
|
|
@@ -14,61 +15,40 @@ import (
|
|
|
|
|
|
//服务地址配置
|
|
|
var (
|
|
|
- rdserver = flag.String("rd", "127.0.0.1:10021", "服务治理地址")
|
|
|
+ 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()
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-func run(thread int, wg *sync.WaitGroup) {
|
|
|
- conn, err := grpc.Dial(*rdserver, grpc.WithInsecure())
|
|
|
+ var err error
|
|
|
+ cu, err = util.NewClient(*rdserver)
|
|
|
if err != nil {
|
|
|
- return
|
|
|
+ panic(err)
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
+func run(thread int, wg *sync.WaitGroup) {
|
|
|
defer func(wg *sync.WaitGroup) {
|
|
|
- conn.Close()
|
|
|
wg.Done()
|
|
|
}(wg)
|
|
|
- var client proto.ServiceClient
|
|
|
- client = proto.NewServiceClient(conn)
|
|
|
|
|
|
for i := 0; i < *requests; i++ {
|
|
|
- repl, err := client.Apply(context.Background(), &proto.ApplyReqData{Name: "demo", Balance: int32(*balancetype)})
|
|
|
- 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.Background(), &proto.DemoReq{
|
|
|
- Name: "张三",
|
|
|
+ _, _ = 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
|
|
|
})
|
|
|
- if err != nil {
|
|
|
- log.Println(err.Error())
|
|
|
- } else {
|
|
|
- log.Println("back::", thread, demo_repl.Data)
|
|
|
- }
|
|
|
- //time.Sleep(time.Duration(rand.Intn(5)) * time.Second)
|
|
|
- //只有使用SEQ负载模式,需要调用释放资源
|
|
|
- release_repl, err := client.Release(context.Background(), &proto.StringReqData{Data: repl.ResourceId})
|
|
|
- if err != nil {
|
|
|
- log.Println("出错了")
|
|
|
- log.Fatalln(err.Error())
|
|
|
- } else {
|
|
|
- log.Println(thread, release_repl.Data)
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|