设计矛盾

异步日志通常在“吞吐、时延、可靠性”三角中权衡。默认无界队列最终会把内存打爆。

可靠性分级

  1. 关键审计日志:优先落盘成功,必要时阻塞。
  2. 普通诊断日志:可采样、可丢弃。
  3. 调试日志:高峰自动降级。

队列策略

  • 多生产者单消费者 ring buffer。
  • 明确 drop_oldestdrop_newest 语义。
  • 将丢弃计数作为高优先级告警指标。

小结

先把日志等级与丢弃策略制度化,再谈性能优化。没有策略约束的异步日志,最后会反噬业务稳定性。