This commit is contained in:
kzkzzzz
2025-12-12 23:38:37 +08:00
parent bd62ff8235
commit 10e037243f
2 changed files with 28 additions and 4 deletions

View File

@@ -15,6 +15,7 @@ import (
"google.golang.org/grpc/health"
"google.golang.org/grpc/health/grpc_health_v1"
"google.golang.org/grpc/keepalive"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/reflection"
"google.golang.org/grpc/status"
"log"
@@ -39,6 +40,7 @@ type Opt func(server *Server)
type Server struct {
gs *grpc.Server
serviceAddr string
serviceId string
serviceName string
serverConf *Conf
@@ -221,6 +223,8 @@ func (s *Server) Run(ctx context.Context) error {
addr := fmt.Sprintf("%s:%d", s.serverConf.Addr, port)
log.Printf("grpc server listen on %s", addr)
s.serviceAddr = fmt.Sprintf("%s:%d", svcIp, port)
err = s.gs.Serve(lis)
if err != nil {
log.Printf("start grpc server err: %s", err)
@@ -297,6 +301,14 @@ func (s *Server) requestLog() grpc.UnaryServerInterceptor {
func (s *Server) grpcRecover() grpc.UnaryServerInterceptor {
return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
md := metadata.New(map[string]string{
"service-host": mycommon.GetHostName(),
"service-addr": s.serviceAddr,
"service-name": s.serviceName,
"service-method": info.FullMethod,
})
grpc.SetHeader(ctx, md)
defer func() {
if err0 := recover(); err0 != nil {
log.Printf("%s - panic: %v\n%s", info.FullMethod, err0, debug.Stack())
@@ -304,7 +316,13 @@ func (s *Server) grpcRecover() grpc.UnaryServerInterceptor {
}
}()
return handler(ctx, req)
res, err := handler(ctx, req)
if err != nil {
fmt.Println("set header")
return nil, err
}
return res, nil
}
}