From faba80e31505298762b492308e1da3eb9e04ee93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Mon, 20 Nov 2023 09:56:35 +0800 Subject: [PATCH] =?UTF-8?q?GRPC=E5=A2=9E=E5=8A=A0Keepalive=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/rpc/rpc_client.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/rpc/rpc_client.go b/internal/rpc/rpc_client.go index b822756f..17521473 100644 --- a/internal/rpc/rpc_client.go +++ b/internal/rpc/rpc_client.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/encoding/gzip" + "google.golang.org/grpc/keepalive" "google.golang.org/grpc/metadata" "net" "net/url" @@ -514,12 +515,15 @@ func (this *RPCClient) init() error { grpc.MaxCallSendMsgSize(128<<20), grpc.UseCompressor(gzip.Name), ) + var keepaliveParams = grpc.WithKeepaliveParams(keepalive.ClientParameters{ + Time: 30 * time.Second, + }) if u.Scheme == "http" { - conn, err = grpc.Dial(apiHost, grpc.WithTransportCredentials(insecure.NewCredentials()), callOptions) + conn, err = grpc.Dial(apiHost, grpc.WithTransportCredentials(insecure.NewCredentials()), callOptions, keepaliveParams) } else if u.Scheme == "https" { conn, err = grpc.Dial(apiHost, grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{ InsecureSkipVerify: true, - })), callOptions) + })), callOptions, keepaliveParams) } else { return errors.New("parse endpoint failed: invalid scheme '" + u.Scheme + "'") }