/** * CMS内容管理系统主入口 * @Author: david.yan(david.yan@qq.com) * @Date: 2021-11-26 15:25:03 * @Description: 提供文章、页面、分类、标签等内容管理功能 */ package service import ( "bsm/full/module/base/cms/internal/config" "bsm/full/module/base/cms/internal/impl" "bsm/full/module/base/cms/internal/server" "git.apinb.com/bsm-sdk/core/service" ) var ( // ServiceKey 服务标识符,用于配置加载和服务注册 ServiceKey = "cms" ) // main 应用程序主入口函数 // 负责初始化配置、数据库连接、gRPC服务等核心组件 func Run() { // 初始化配置,加载服务配置参数 config.New(ServiceKey) // 初始化实现层,建立数据库、缓存、etcd等连接 impl.NewImpl() // 创建gRPC服务器实例,监听指定地址 s := server.New(config.Spec.Addr) // 创建微服务实例,配置服务参数 srv := service.New( s.Grpc, &service.Options{ Addr: config.Spec.Addr, // 服务监听地址 MsConf: config.Spec.MicroService, // 微服务配置 EtcdClient: impl.EtcdService, // Etcd客户端,用于服务发现 GatewayCtx: s.Ctx, // HTTP网关上下文 GatewayConf: config.Spec.Gateway, // HTTP网关配置 GatewayMux: s.Mux, // HTTP网关多路复用器 }, ) // 程序退出时优雅地停止服务,释放资源 defer srv.Stop() // 启动服务,开始监听和处理请求 srv.Start() } func main() { Run() }