update
This commit is contained in:
@@ -63,7 +63,7 @@ func UseDefaultBufferCfg(v bool) Opt {
|
||||
|
||||
func WithRegistry(serviceName string, reg myregistry.IRegister) Opt {
|
||||
return func(server *Server) {
|
||||
server.serviceName = serviceName
|
||||
server.serviceName = mygrpc.ServicePrefix + serviceName
|
||||
server.reg = reg
|
||||
}
|
||||
}
|
||||
@@ -81,7 +81,7 @@ func WithDelayStopMs(v int) Opt {
|
||||
}
|
||||
|
||||
func SetFlag() {
|
||||
pflag.Int("grpc.port", 18082, "listen port")
|
||||
pflag.Int("grpc.port", 0, "listen port, 0 is random port")
|
||||
pflag.String("grpc.log", "true", "enable request log")
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ func NewByConf(conf *Conf, opts ...Opt) *Server {
|
||||
}
|
||||
|
||||
if s.logger == nil {
|
||||
s.logger = mylog.GetLogger()
|
||||
s.logger = mylog.GetLoggerSkip(-1)
|
||||
}
|
||||
|
||||
if s.reg != nil && s.serviceName == "" {
|
||||
@@ -142,7 +142,7 @@ func (s *Server) initServer() {
|
||||
PermitWithoutStream: true, // 即使没有 active stream, 也允许 ping
|
||||
}),
|
||||
grpc.KeepaliveParams(keepalive.ServerParameters{
|
||||
MaxConnectionIdle: time.Hour * 2, // 空闲连接时间
|
||||
MaxConnectionIdle: time.Minute * 15, // 空闲连接时间
|
||||
MaxConnectionAgeGrace: time.Second * 30, // 在强制关闭连接之间, 允许有 N 的时间完成 pending 的 rpc 请求
|
||||
Time: time.Second * 20, // 如果一个连接空闲超过 N, 则发送一个 ping 请求
|
||||
Timeout: time.Second * 5, // 如果 ping 请求 N 内未收到回复, 则认为该连接已断开
|
||||
@@ -210,6 +210,12 @@ func (s *Server) Run(ctx context.Context) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Printf("[%s] register service: %s - %s:%d",
|
||||
s.reg.Name(),
|
||||
s.serviceRegInfo.ServiceName,
|
||||
s.serviceRegInfo.Ip, s.serviceRegInfo.Port,
|
||||
)
|
||||
}
|
||||
|
||||
addr := fmt.Sprintf("%s:%d", s.serverConf.Addr, port)
|
||||
@@ -230,6 +236,13 @@ func (s *Server) Stop() {
|
||||
if err != nil {
|
||||
s.logger.Errorf("grpc server deregister err: %s", err)
|
||||
}
|
||||
|
||||
log.Printf("[%s] deregister service: %s - %s:%d",
|
||||
s.reg.Name(),
|
||||
s.serviceRegInfo.ServiceName,
|
||||
s.serviceRegInfo.Ip, s.serviceRegInfo.Port,
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
// 如果使用k8s service, 关闭pod和往service注销ip是同时进行的, 如果退出服务比注销ip先完成, 可能有流量继续进来, 导致请求失败
|
||||
@@ -270,7 +283,7 @@ func (s *Server) requestLog() grpc.UnaryServerInterceptor {
|
||||
code = status.New(codes.Unknown, err.Error()).Code()
|
||||
}
|
||||
|
||||
codeMsg = fmt.Sprintf("Error Code: %s(%d)", code.String(), uint32(code))
|
||||
codeMsg = fmt.Sprintf("%s(%d)", code.String(), uint32(code))
|
||||
}
|
||||
|
||||
s.logger.Infof(
|
||||
@@ -287,7 +300,7 @@ func (s *Server) grpcRecover() grpc.UnaryServerInterceptor {
|
||||
defer func() {
|
||||
if err0 := recover(); err0 != nil {
|
||||
log.Printf("%s - panic: %v\n%s", info.FullMethod, err0, debug.Stack())
|
||||
err = fmt.Errorf("server err: %s - system err: %s", info.FullMethod, err0)
|
||||
err = fmt.Errorf("server err %s - %s", info.FullMethod, err0)
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user