代码拉取完成,页面将自动刷新
package protocol
import (
"context"
"net"
"gitee.com/penghengben/devcloud-mini/cmdb/conf"
"gitee.com/penghengben/devcloud-mini/cmdb/logger"
"github.com/infraboard/mcube/ioc"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"google.golang.org/grpc"
)
// 如果http 服务器使用哪个路由, 当做参数传递进来
func NewGrpc() *Grpc {
return &Grpc{
server: grpc.NewServer(
grpc.ChainUnaryInterceptor(
// 添加Grpc Trace中间件
otelgrpc.UnaryServerInterceptor(),
),
),
}
}
type Grpc struct {
server *grpc.Server
}
func (g *Grpc) Start() error {
// 2.1 加载grpc业务实现类
ioc.LoadGrpcController(g.server)
logger.L().Debug().Msgf("loaded controllers: %s", ioc.ListControllerObjectNames())
// 2.3 启动grpc server
lis, err := net.Listen("tcp", conf.C().Grpc.Address())
if err != nil {
return err
}
logger.L().Debug().Msgf("grpc server listen: %s", conf.C().Grpc.Address())
return g.server.Serve(lis)
}
func (g *Grpc) Stop(ctx context.Context) {
g.server.GracefulStop()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。