统计QPS看似简单,但不同方法的粒度、实时性和准确性差异很大,直接影响系统性能评估和架构决策。本文结合实战经验,详细拆解常用统计方法、踩过的坑,并提供Java代码示例。
一、QPS统计的5种常见方法
方法1:负载均衡器 / API Gateway 日志
- 原理:通过 Nginx、HAProxy 或云LB记录每条请求日志,分析日志得出 QPS。
- 公式:
总请求数 / 时间窗口(秒) 优点:
- 全局视角、最接近用户体验。
- 记录完整请求信息,准确度高。
- 无侵入,不影响业务代码。
缺点:
- 有延迟(秒到分钟)。
- 运维成本高,需要维护日志流水线。
踩过的坑:日志采集Agent出错导致日志丢失,监控显示健康但用户报错。
方法2:应用代码埋点(Java示例)
在Spring Boot中可以使用Micrometer进行埋点统计QPS。
import io.micrometer.core.instrument.Counter; import io.micrometer.core.instrument.MeterRegistry; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; impor