目录结构:
client/main.go:
package main
import (
"context"
"demo/config"
"demo/proto"
"fmt"
"log"
"time"
_ "github.com/mbobakov/grpc-consul-resolver"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
)
func main() {
var srvClient proto.GreeterClient
// 服务
if conn := InitSrvConn(config.ServiceName); conn != nil {
srvClient = proto.NewGreeterClient(conn)
}
req := &proto.HelloRequest{
Name: "",
}
for i := 0; i < 1000; i++ {
req.Name = fmt.Sprintf("james%d", i)
resp, err := srvClient.SayHello(context.Background(), req)
if err != nil {
log.Fatalln(err)
}
log.Println(resp.Message)
time.Sleep(time.Second)
}
}
// 同时完成了服务发现和负载均衡算法(轮