client.go 1.1 KB

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