设计矛盾
异步日志通常在“吞吐、时延、可靠性”三角中权衡。默认无界队列最终会把内存打爆。
可靠性分级
- 关键审计日志:优先落盘成功,必要时阻塞。
- 普通诊断日志:可采样、可丢弃。
- 调试日志:高峰自动降级。
队列策略
- 多生产者单消费者 ring buffer。
- 明确
drop_oldest或drop_newest语义。 - 将丢弃计数作为高优先级告警指标。
小结
先把日志等级与丢弃策略制度化,再谈性能优化。没有策略约束的异步日志,最后会反噬业务稳定性。
异步日志通常在“吞吐、时延、可靠性”三角中权衡。默认无界队列最终会把内存打爆。
drop_oldest 或 drop_newest 语义。先把日志等级与丢弃策略制度化,再谈性能优化。没有策略约束的异步日志,最后会反噬业务稳定性。