2026-08-09 10:43:45 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @作者: david.yan(david.yan@qq.com)
|
|
|
|
|
|
* @日期: 2021-11-26 15:25:03
|
|
|
|
|
|
* @描述: Sender微服务主入口程序,提供邮件和短信发送功能
|
|
|
|
|
|
*/
|
|
|
|
|
|
package service
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2026-08-09 12:41:08 +08:00
|
|
|
|
"bsm/full/module/base/sender/internal/config"
|
|
|
|
|
|
"bsm/full/module/base/sender/internal/impl"
|
|
|
|
|
|
"bsm/full/module/base/sender/internal/server"
|
2026-08-09 10:43:45 +08:00
|
|
|
|
"git.apinb.com/bsm-sdk/core/service"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
|
// ServiceKey 服务标识符,用于配置文件加载和服务注册
|
|
|
|
|
|
ServiceKey = "sender"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// main 主函数,启动Sender微服务
|
|
|
|
|
|
func Run() {
|
|
|
|
|
|
// 初始化配置文件
|
|
|
|
|
|
config.New(ServiceKey)
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化依赖服务(Redis、数据库、Etcd等)
|
|
|
|
|
|
impl.NewImpl()
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化gRPC和HTTP服务器
|
|
|
|
|
|
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, // Gateway上下文
|
|
|
|
|
|
GatewayConf: config.Spec.Gateway, // Gateway配置
|
|
|
|
|
|
GatewayMux: s.Mux, // Gateway路由器
|
|
|
|
|
|
},
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// 确保程序退出时优雅停止服务
|
|
|
|
|
|
defer srv.Stop()
|
|
|
|
|
|
|
|
|
|
|
|
// 启动服务并开始监听请求
|
|
|
|
|
|
srv.Start()
|
|
|
|
|
|
}
|
2026-08-09 12:41:08 +08:00
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
|
Run()
|
|
|
|
|
|
}
|