package datacenter import ( "context" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" "log" datacenterPb "metawant.greentech.com.cn/gaoyagang/gt-common/rpc_client/datacenter/pb" "time" ) // 创建一个v1版本的数据中心rpc调用实例 func CreateDcRpcClient(ipPort string, timeOutSecond int) datacenterPb.OrganizationClient { var conn *grpc.ClientConn var err error if timeOutSecond == 0 { // 此时即使连接不上,也不会返回超时或连接拒绝的err conn, err = grpc.DialContext(context.Background(), ipPort, grpc.WithTransportCredentials(insecure.NewCredentials())) } else { // 此处连接超时的话会报错 cont, _ := context.WithTimeout(context.Background(), 5*time.Second) conn, err = grpc.DialContext(cont, ipPort, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithBlock()) } if err != nil { log.Fatalf("CreateDcRpcClient did not connect: %v", err) } client := datacenterPb.NewOrganizationClient(conn) return client }