今天我们来聊一聊面试中常见的一个话题——高并发性能指标。
很多人可能都会遇到这种面试官提问:“你了解 QPS、TPS、RT、吞吐量 这些指标吗?”这时候,我猜你脑袋里肯定会冒出几个大问号:“这些到底是什么鬼?我每天忙着写代码,根本没空去琢磨这些。”
其实,别着急,今天我就来帮你把这些理清楚,顺便告诉你为什么它们对高并发系统如此重要,尤其是在用 Java 写代码时如何考虑这些指标。
什么是 QPS、TPS、RT、吞吐量?
在高并发的场景下,咱们的系统是要处理大量的请求和数据的。这些术语就是用来衡量系统性能的关键指标,让我们知道在负载下系统到底有多强大。简单来说,这些是你系统健康的“体检报告”。面试官让你了解这些,说明他在考察你对高并发的理解,毕竟程序员写代码时可不是盯着 CPU 占用率就行的,我们得知道自己在写什么样的系统,做到心中有数。
QPS (Queries Per Second)
QPS 是“每秒查询数”的缩写,用来衡量系统每秒处理多少个查询请求。可以说是衡量一个系统吞吐量的基本指标。在 Web 系统中,QPS 就是你每秒接收并处理的请求数。
比如,你的 Web 服务器每秒接收了 1000 个 HTTP 请求,那么 QPS 就是 1000。对于数据库来说,也是类似的:你每秒有多少个查询请求就能确定数据库的处理能力。
Java 示例:
public class QPSExample {
private static long startTime = System.nanoTime();
private static int requestCount = 0;
public static void processRequest() {
requestCount++;
long currentTime = System.nanoTime();
if ((currentTime - startTime) >= 1000000000) {
// 1 second
System.out.println("QPS: " + requestCount);
requestCount = 0;
startTime = currentTime;
}
}