package main import ( "flag" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/service" "github.com/zeromicro/go-zero/zrpc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/config" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/logic" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/server" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/svc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmCore" "gitlink.org.cn/jcce-pcm/utils/interceptor/rpcserver" commonConfig "gitlink.org.cn/jcce-pcm/utils/nacos" "google.golang.org/grpc" "google.golang.org/grpc/reflection" ) var configFile = flag.String("f", "rpc/etc/pcmcore.yaml", "the config file") func main() { flag.Parse() var bootstrapConfig commonConfig.BootstrapConfig conf.MustLoad(*configFile, &bootstrapConfig) //解析业务配置 var c config.Config nacosConfig := bootstrapConfig.NacosConfig serviceConfigContent := nacosConfig.InitConfig(func(data string) { err := conf.LoadFromYamlBytes([]byte(data), &c) if err != nil { panic(err) } }) err := conf.LoadFromYamlBytes([]byte(serviceConfigContent), &c) if err != nil { panic(err) } // start log component logx.MustSetup(c.LogConf) // 注册到nacos nacosConfig.Discovery(&c.RpcServerConf) ctx := svc.NewServiceContext(c) s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { pcmCore.RegisterPcmCoreServer(grpcServer, server.NewPcmCoreServer(ctx)) if c.Mode == service.DevMode || c.Mode == service.TestMode { reflection.Register(grpcServer) } }) //rpc log s.AddUnaryInterceptors(rpcserver.LoggerInterceptor) defer s.Stop() // 初始化定时任务 logic.InitCron(ctx) logx.Infof("Starting rpc server at %s...\n", c.ListenOn) s.Start() }