feat: set default connection idle time for grpc servers (#1922)

* feat: set default connection idle time for grpc servers

* feat: add grpc health check
This commit is contained in:
Kevin Wan
2022-05-21 19:38:27 +08:00
committed by GitHub
parent 6b1e15cab1
commit ca88b69d24
2 changed files with 18 additions and 0 deletions

View File

@@ -1,10 +1,16 @@
package internal
import (
"time"
"github.com/zeromicro/go-zero/core/stat"
"google.golang.org/grpc"
"google.golang.org/grpc/health"
"google.golang.org/grpc/keepalive"
)
const defaultConnectionIdleDuration = time.Minute * 5
type (
// RegisterFn defines the method to register a server.
RegisterFn func(*grpc.Server)
@@ -20,6 +26,7 @@ type (
baseRpcServer struct {
address string
health *health.Server
metrics *stat.Metrics
options []grpc.ServerOption
streamInterceptors []grpc.StreamServerInterceptor
@@ -30,7 +37,11 @@ type (
func newBaseRpcServer(address string, rpcServerOpts *rpcServerOptions) *baseRpcServer {
return &baseRpcServer{
address: address,
health: health.NewServer(),
metrics: rpcServerOpts.metrics,
options: []grpc.ServerOption{grpc.KeepaliveParams(keepalive.ServerParameters{
MaxConnectionIdle: defaultConnectionIdleDuration,
})},
}
}