mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-06 18:10:25 +08:00
修复多个日志数据库节点分布不平均的问题
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
||||||
"github.com/iwind/TeaGo/dbs"
|
"github.com/iwind/TeaGo/dbs"
|
||||||
"github.com/iwind/TeaGo/lists"
|
"github.com/iwind/TeaGo/lists"
|
||||||
|
"github.com/iwind/TeaGo/rands"
|
||||||
timeutil "github.com/iwind/TeaGo/utils/time"
|
timeutil "github.com/iwind/TeaGo/utils/time"
|
||||||
"hash/crc32"
|
"hash/crc32"
|
||||||
"regexp"
|
"regexp"
|
||||||
@@ -78,16 +79,28 @@ func AllAccessLogDBs() []*dbs.DB {
|
|||||||
// 获取获取DAO
|
// 获取获取DAO
|
||||||
func randomHTTPAccessLogDAO() (dao *HTTPAccessLogDAOWrapper) {
|
func randomHTTPAccessLogDAO() (dao *HTTPAccessLogDAOWrapper) {
|
||||||
accessLogLocker.RLock()
|
accessLogLocker.RLock()
|
||||||
|
defer accessLogLocker.RUnlock()
|
||||||
if len(httpAccessLogDAOMapping) == 0 {
|
if len(httpAccessLogDAOMapping) == 0 {
|
||||||
dao = nil
|
dao = nil
|
||||||
} else {
|
return
|
||||||
for _, d := range httpAccessLogDAOMapping {
|
|
||||||
dao = d
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
accessLogLocker.RUnlock()
|
|
||||||
return
|
var daoList = []*HTTPAccessLogDAOWrapper{}
|
||||||
|
|
||||||
|
for _, d := range httpAccessLogDAOMapping {
|
||||||
|
daoList = append(daoList, d)
|
||||||
|
}
|
||||||
|
|
||||||
|
var l = len(daoList)
|
||||||
|
if l == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if l == 1 {
|
||||||
|
return daoList[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
return daoList[rands.Int(0, len(daoList)-1)]
|
||||||
}
|
}
|
||||||
|
|
||||||
func randomNSAccessLogDAO() (dao *NSAccessLogDAOWrapper) {
|
func randomNSAccessLogDAO() (dao *NSAccessLogDAOWrapper) {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ var SharedHTTPAccessLogDAO *HTTPAccessLogDAO
|
|||||||
var (
|
var (
|
||||||
oldAccessLogQueue = make(chan *pb.HTTPAccessLog)
|
oldAccessLogQueue = make(chan *pb.HTTPAccessLog)
|
||||||
accessLogQueue = make(chan *pb.HTTPAccessLog, 10_000)
|
accessLogQueue = make(chan *pb.HTTPAccessLog, 10_000)
|
||||||
accessLogQueueMaxLength = 100_000 //队列最大长度
|
accessLogQueueMaxLength = 100_000 // 队列最大长度
|
||||||
accessLogQueuePercent = 100 // 0-100
|
accessLogQueuePercent = 100 // 0-100
|
||||||
accessLogCountPerSecond = 10_000 // 每秒钟写入条数,0 表示不限制
|
accessLogCountPerSecond = 10_000 // 每秒钟写入条数,0 表示不限制
|
||||||
accessLogPerTx = 100 // 单事务写入条数
|
accessLogPerTx = 100 // 单事务写入条数
|
||||||
|
|||||||
Reference in New Issue
Block a user