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:
@@ -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,
|
||||
})},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user