graph TD
A[前端API] --> B[线程本地缓冲]
B --> C[无锁环形队列]
C --> D[双缓冲交换区]
D --> E[后端处理器]
E --> F[文件输出]
E --> G[控制台输出]
E --> H[网络输出]
I[崩溃处理器] -->|紧急刷新| D
J[配置管理] -->|动态调整| A
J -->|输出控制| E
K[日志滚动] -->|文件管理| F
L[性能监控] -->|实时反馈| C
L -->|资源调控| E
二、核心组件设计
1. 分层架构优化
graph LR
A[前端接口层] -->|零拷贝写入| B[缓冲管理层]
B -->|批量提交| C[核心处理层]
C -->|异步输出| D[输出层]
E[支持系统] -->|配置注入| B
E -->|崩溃处理| C
E -->|滚动策略| D
2. 关键工作流程
sequenceDiagram
participant App as 应用线程
participant Front as 前端接口
participant TLBuf as 线程缓冲
participant RingBuf as 环形队列
participant Backend as 后台线程
participant Output as 输出模块
App->>Front: 日志调用
activate Front
Front->>TLBuf: 零拷贝写入
deactivate Front
loop 批量提交
TLBuf->>RingBuf: 满足条件时提交(100ms/8KB)
end
Backend->>RingBuf: 定时拉取(1s)
Backend->>Backend: 双缓冲交换
Backend->>Output: 批量写入
Output->>磁盘: 优化IO操作
graph TB
subgraph 应用节点
A[应用进程] --> B[本地日志代理]
B --> C[本地存储]
B --> D[网络传输]
end
subgraph 日志集群
D --> E[Kafka队列]
E --> F[实时处理]
E --> G[长期存储]
end
F --> H[监控仪表盘]
G --> I[历史分析]