client.go 1015 B

1234567891011121314151617181920212223242526272829
  1. package datacenter
  2. import (
  3. "context"
  4. "google.golang.org/grpc"
  5. "google.golang.org/grpc/credentials/insecure"
  6. "log"
  7. datacenterPb "metawant.greentech.com.cn/gaoyagang/gt-common/rpc_client/datacenter/pb"
  8. "time"
  9. )
  10. // 创建一个v1版本的数据中心rpc调用实例
  11. func CreateDcRpcClient(ipPort string, timeOutSecond int) datacenterPb.OrganizationClient {
  12. var conn *grpc.ClientConn
  13. var err error
  14. if timeOutSecond == 0 {
  15. // 此时即使连接不上,也不会返回超时或连接拒绝的err
  16. conn, err = grpc.DialContext(context.Background(), ipPort, grpc.WithTransportCredentials(insecure.NewCredentials()))
  17. } else {
  18. // 此处连接超时的话会报错
  19. cont, _ := context.WithTimeout(context.Background(), 5*time.Second)
  20. conn, err = grpc.DialContext(cont, ipPort, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithBlock())
  21. }
  22. if err != nil {
  23. log.Fatalf("CreateDcRpcClient did not connect: %v", err)
  24. }
  25. client := datacenterPb.NewOrganizationClient(conn)
  26. return client
  27. }