日志优化

This commit is contained in:
hahwu 2025-12-04 15:32:18 +08:00
parent 1191168a19
commit dc2e1d8ea4
2 changed files with 14 additions and 7 deletions

2
.gitignore vendored
View File

@ -13,3 +13,5 @@ src/server/unit_test.go
src/server/teLog/*
src/server/teLog/log.2024-11-28
src/server/logs/ga_log/*.log
src/server/goroutine.prof
src/server/heap_after.pb.gz

View File

@ -2,6 +2,7 @@ package game
import (
"encoding/json"
"runtime"
kafkaMiddleware "server/middleware/kafka"
"server/pkg/github.com/name5566/leaf/log"
"sync"
@ -15,8 +16,9 @@ const (
)
const (
PLAYROOM_LOST = "playroom_lost"
LOG_LENGTH = 10000
WORKER_COUNT = 8
// 增大缓冲:针对 ~1000 条/s保留足够秒数的缓冲可按需调整
LOG_LENGTH = 100000
WORKER_COUNT = 16
)
type LogMgr struct {
@ -41,14 +43,17 @@ func (L *LogMgr) InitManager() {
// 初始化通道与启动 worker 循环写入 kafka
L.L = make(chan *Log, LOG_LENGTH)
// 启动 worker
// 启动 worker(允许基于 CPU 动态扩展)
workerCount := WORKER_COUNT
if cpuWorkers := runtime.NumCPU() * 2; cpuWorkers > workerCount {
workerCount = cpuWorkers
}
for i := 0; i < workerCount; i++ {
L.wg.Add(1)
go func() {
defer L.wg.Done()
for v := range L.L {
// 如果 kafka 未就绪,尝试重入队列并等待一小段时间
// 如果 kafka 未就绪,尝试重入队列并等待一小段时间(缩短等待)
if kafkaMiddleware.KafkaMod == nil {
// 尝试非阻塞重入,否则丢弃最旧再试一次
select {
@ -63,7 +68,7 @@ func (L *LogMgr) InitManager() {
default:
}
}
time.Sleep(100 * time.Millisecond)
time.Sleep(10 * time.Millisecond)
continue
}
@ -85,8 +90,8 @@ func (L *LogMgr) InitManager() {
// 放不下则丢弃
}
}
// 轻微退避,避免快速循环
time.Sleep(50 * time.Millisecond)
// 缩短退避,避免快速循环阻塞
time.Sleep(10 * time.Millisecond)
}
}
}()