Files
kami_gateway/main.go
danial 669426dbea perf(server): 添加 HTTP 服务用于性能分析
- 引入 net/http 包
- 启动一个 goroutine 运行 HTTP 服务器监听 6060 端口
- 支持性能分析和调试接口的访问
- 便于远程监控和采集服务指标数据
2025-12-14 19:09:38 +08:00

73 lines
1.6 KiB
Go

package main
import (
"context"
"gateway/internal/cache"
"gateway/internal/config"
_ "gateway/internal/models"
"gateway/internal/otelTrace"
"gateway/internal/proxy"
_ "gateway/internal/routers"
"gateway/internal/schema/query"
"gateway/internal/service"
_ "gateway/internal/service/message"
"gateway/internal/service/notify"
"gateway/internal/service/supplier/third_party"
"gateway/internal/service/supplier/third_party/queue"
"gateway/internal/utils"
"github.com/beego/beego/v2/server/web"
_ "github.com/go-sql-driver/mysql"
"log"
"net/http"
_ "net/http/pprof"
"time"
)
func main() {
config.GetMQAddress()
// 初始化代理池
if err := proxy.InitProxyPool(); err != nil {
log.Printf("初始化代理池失败: %v", err)
return
}
go func() {
log.Println(http.ListenAndServe(":6060", nil))
}()
// 初始化 OpenTelemetry
cleanup1, cleanup2, cleanup3 := otelTrace.InitTracer()
defer func() {
// 使用带超时的 context 来关闭导出器
ctx := context.Background()
shutdownCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
if cleanup1 != nil {
_ = cleanup1(shutdownCtx)
}
if cleanup2 != nil {
_ = cleanup2(shutdownCtx)
}
if cleanup3 != nil {
_ = cleanup3(shutdownCtx)
}
}()
// 使用 context.Background() 作为基础 context
ctx := context.Background()
go notify.CreateOrderNotifyConsumer(ctx)
go query.CreateSupplierOrderQueryCuConsumer(ctx)
// go query.CreatePayForQueryConsumer(ctx)
go service.OrderSettleInit(ctx)
cache.Start()
utils.StartProxyPool()
//tasks.Start(ctx)
// 初始化队列系统
queue.Init(ctx)
third_party.StartOrderPool(ctx)
web.Run()
}