diff --git a/go/vt/servenv/grpc_server.go b/go/vt/servenv/grpc_server.go index 8bfbcae0fff..e596d1702f8 100644 --- a/go/vt/servenv/grpc_server.go +++ b/go/vt/servenv/grpc_server.go @@ -83,6 +83,10 @@ var ( // The lower bound for window size is 64K and any value smaller than that will be ignored. GRPCInitialWindowSize = flag.Int("grpc_server_initial_window_size", 0, "grpc server initial window size") + // EnforcementPolicy MinTime that sets the keepalive enforcement policy on the server. + // This is the minimum amount of time a client should wait before sending a keepalive ping. + GRPCKeepAliveEnforcementPolicyMinTime = flag.Duration("grpc_server_keepalive_enforcement_policy_min_time", 5*time.Minute, "grpc server minimum keepalive time") + authPlugin Authenticator ) @@ -143,6 +147,11 @@ func createGRPCServer() { opts = append(opts, grpc.InitialWindowSize(int32(*GRPCInitialWindowSize))) } + ep := keepalive.EnforcementPolicy{ + MinTime: *GRPCKeepAliveEnforcementPolicyMinTime, + } + opts = append(opts, grpc.KeepaliveEnforcementPolicy(ep)) + if GRPCMaxConnectionAge != nil { ka := keepalive.ServerParameters{ MaxConnectionAge: *GRPCMaxConnectionAge,