Skip to content

Commit 21de152

Browse files
authored
fix: 避免日志记录触发递归日志风暴,排除日志模型的性能监控中间件 (#5910)
初始慢操作触发日志写入,增加系统负载;日志写入因负载过高变缓,被判定为新的慢操作,进而触发更多日志;持续升高的负载让所有操作进一步变慢,生成更多日志。最终形成“越慢越写、越写越慢”的自我强化正反馈循环,即便初始高并发业务流量结束,循环仍会持续耗尽系统资源,直至服务崩溃。 修复方案: - 对日志模型(Log)跳过 addCommonMiddleware 中间件注册 - 避免日志写入操作被自身监控逻辑拦截,从源头切断循环触发条件 - 不影响业务模型的慢操作监控功能,仅豁免日志自身的性能统计
1 parent fa163a5 commit 21de152

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

packages/service/common/mongo/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export const getMongoModel = <T>(name: string, schema: mongoose.Schema) => {
112112
export const getMongoLogModel = <T>(name: string, schema: mongoose.Schema) => {
113113
if (connectionLogMongo.models[name]) return connectionLogMongo.models[name] as Model<T>;
114114
console.log('Load model======', name);
115-
addCommonMiddleware(schema);
115+
// addCommonMiddleware(schema);
116116

117117
const model = connectionLogMongo.model<T>(name, schema);
118118

0 commit comments

Comments
 (0)