From 73c0b49bd42bf58a368a534b6dffaa4d92268341 Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Sun, 18 Feb 2024 17:21:22 +0800 Subject: [PATCH] make backoff shorter Signed-off-by: Ryan Leung --- client/grpcutil/grpcutil.go | 11 ++++++++++- pkg/utils/grpcutil/grpcutil.go | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/client/grpcutil/grpcutil.go b/client/grpcutil/grpcutil.go index fe149e76ecc..1b7f8a53857 100644 --- a/client/grpcutil/grpcutil.go +++ b/client/grpcutil/grpcutil.go @@ -28,6 +28,7 @@ import ( "github.com/tikv/pd/client/tlsutil" "go.uber.org/zap" "google.golang.org/grpc" + "google.golang.org/grpc/backoff" "google.golang.org/grpc/credentials" "google.golang.org/grpc/metadata" ) @@ -61,7 +62,15 @@ func GetClientConn(ctx context.Context, addr string, tlsCfg *tls.Config, do ...g if err != nil { return nil, errs.ErrURLParse.Wrap(err).GenWithStackByCause() } - cc, err := grpc.DialContext(ctx, u.Host, append(do, opt)...) + backoffOpts := grpc.WithConnectParams(grpc.ConnectParams{ + Backoff: backoff.Config{ + BaseDelay: 1.0 * time.Second, + Multiplier: 1.6, + Jitter: 0.2, + MaxDelay: 60 * time.Second, + }, + }) + cc, err := grpc.DialContext(ctx, u.Host, append(do, opt, backoffOpts)...) if err != nil { return nil, errs.ErrGRPCDial.Wrap(err).GenWithStackByCause() } diff --git a/pkg/utils/grpcutil/grpcutil.go b/pkg/utils/grpcutil/grpcutil.go index a001ec4bd03..a2d379d1ed3 100644 --- a/pkg/utils/grpcutil/grpcutil.go +++ b/pkg/utils/grpcutil/grpcutil.go @@ -30,6 +30,7 @@ import ( "go.etcd.io/etcd/pkg/transport" "go.uber.org/zap" "google.golang.org/grpc" + "google.golang.org/grpc/backoff" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" "google.golang.org/grpc/metadata" @@ -134,7 +135,15 @@ func GetClientConn(ctx context.Context, addr string, tlsCfg *tls.Config, do ...g if err != nil { return nil, errs.ErrURLParse.Wrap(err).GenWithStackByCause() } - cc, err := grpc.DialContext(ctx, u.Host, append(do, opt)...) + backoffOpts := grpc.WithConnectParams(grpc.ConnectParams{ + Backoff: backoff.Config{ + BaseDelay: 1.0 * time.Second, + Multiplier: 1.6, + Jitter: 0.2, + MaxDelay: 60 * time.Second, + }, + }) + cc, err := grpc.DialContext(ctx, u.Host, append(do, opt, backoffOpts)...) if err != nil { return nil, errs.ErrGRPCDial.Wrap(err).GenWithStackByCause() }