rpc-client/client.go
package rpc_clients
import (
"context"
"google.golang.org/grpc"
"lch-tests/protobufs/workload"
"log"
"time"
)
var (
WorkloadClient workload.WorkloadServiceClient
)
type Conn struct {
clientConn *grpc.ClientConn
callTimeOut time.Duration
}
func InitConnections(addr string) {
cc := GetConn(addr)
WorkloadClient = workload.NewWorkloadServiceClient(cc)
}
func GetConn(addr string) *grpc.ClientConn {
c := &Conn{
callTimeOut: 3 * time.Second,
}
c.Dial(addr)
return c.clientConn
}
func (c *Conn) Dial(addr string) error {
ctx, cancel := context.WithTimeout(context.Background(), c.callTimeOut)
defer cancel()
var err error
c.clientConn, err = grpc.DialContext(ctx, addr, grpc.WithInsecure())
if err != nil {
log.Printf("dial rpc error:%s", err.Error())
}
return nil
}
manager/manager.go
package manager
import (
"context"
"github.com/gin-gonic/gin"
"lch-tests/handler"
"lch-tests/kube"
rpcClient "lch-tests/rpc-clients"
)
const (
addr = "192.168.2.331:31878"
)
func Main(ctx context.Context) error {
// 初始化kube配置信息
kube.InitKube()
// 初始化rpc连接
rpcClient.InitConnections(addr)
engine := gin.New()
handler := &handler.Handler{}
engine.GET("/home", handler.Home)
return engine.Run()
}