client.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package client
  2. import (
  3. "context"
  4. "time"
  5. "git.ikuban.com/server/kratos-nacos/registry"
  6. "github.com/go-kratos/kratos/v2/middleware"
  7. "github.com/go-kratos/kratos/v2/log"
  8. "github.com/go-kratos/kratos/v2/transport/grpc"
  9. grpc2 "google.golang.org/grpc"
  10. )
  11. var ReceiveMsgSize = 10000000000
  12. var connMap = make(map[string]*grpc2.ClientConn)
  13. func getDialInsecure(r *registry.Registry, logger log.Logger,
  14. endpointNameKey string) (*grpc2.ClientConn, error) {
  15. if _, ok := connMap[endpointNameKey]; ok {
  16. return connMap[endpointNameKey], nil
  17. }
  18. endpoint := grpc.WithEndpoint(endpointNameKey)
  19. middles := []middleware.Middleware{
  20. //logging.Client(logger),
  21. }
  22. if r == nil {
  23. return nil, nil
  24. }
  25. conn, err := grpc.DialInsecure(context.Background(), endpoint, grpc.WithDiscovery(r),
  26. grpc.WithMiddleware(middles...),
  27. grpc.WithTimeout(time.Second*60),
  28. grpc.WithOptions(grpc2.WithDefaultCallOptions(grpc2.MaxCallRecvMsgSize(ReceiveMsgSize))),
  29. )
  30. if err != nil {
  31. return nil, err
  32. }
  33. connMap[endpointNameKey] = conn
  34. return conn, nil
  35. }
  36. func GetConn(endpointNameKey string) *grpc2.ClientConn {
  37. return connMap[endpointNameKey]
  38. }