You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

pcmcore.go 1.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package main
  2. import (
  3. "flag"
  4. "github.com/zeromicro/go-zero/core/conf"
  5. "github.com/zeromicro/go-zero/core/logx"
  6. "github.com/zeromicro/go-zero/core/service"
  7. "github.com/zeromicro/go-zero/zrpc"
  8. "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/config"
  9. "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/logic"
  10. "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/server"
  11. "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/svc"
  12. "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmCore"
  13. "gitlink.org.cn/jcce-pcm/utils/interceptor/rpcserver"
  14. commonConfig "gitlink.org.cn/jcce-pcm/utils/nacos"
  15. "google.golang.org/grpc"
  16. "google.golang.org/grpc/reflection"
  17. )
  18. var configFile = flag.String("f", "rpc/etc/pcmcore.yaml", "the config file")
  19. func main() {
  20. flag.Parse()
  21. var bootstrapConfig commonConfig.BootstrapConfig
  22. conf.MustLoad(*configFile, &bootstrapConfig)
  23. //解析业务配置
  24. var c config.Config
  25. nacosConfig := bootstrapConfig.NacosConfig
  26. serviceConfigContent := nacosConfig.InitConfig(func(data string) {
  27. err := conf.LoadFromYamlBytes([]byte(data), &c)
  28. if err != nil {
  29. panic(err)
  30. }
  31. })
  32. err := conf.LoadFromYamlBytes([]byte(serviceConfigContent), &c)
  33. if err != nil {
  34. panic(err)
  35. }
  36. // start log component
  37. logx.MustSetup(c.LogConf)
  38. // 注册到nacos
  39. nacosConfig.Discovery(&c.RpcServerConf)
  40. ctx := svc.NewServiceContext(c)
  41. s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) {
  42. pcmCore.RegisterPcmCoreServer(grpcServer, server.NewPcmCoreServer(ctx))
  43. if c.Mode == service.DevMode || c.Mode == service.TestMode {
  44. reflection.Register(grpcServer)
  45. }
  46. })
  47. //rpc log
  48. s.AddUnaryInterceptors(rpcserver.LoggerInterceptor)
  49. defer s.Stop()
  50. // 初始化定时任务
  51. logic.InitCron(ctx)
  52. logx.Infof("Starting rpc server at %s...\n", c.ListenOn)
  53. s.Start()
  54. }

PCM is positioned as Software stack over Cloud, aiming to build the standards and ecology of heterogeneous cloud collaboration for JCC in a non intrusive and autonomous peer-to-peer manner.