标签:
在WEB服务器端,每日的访问量巨大。在非生产环境需要对服务器进行压力测试,一般使用后台线程和Sleep方式来模拟线上的压力。这里使用ScheduledExecutorService实现一种简单的QPS测试代码。
QpsProxy:
import com.google.common.base.Preconditions;
import org.apache.commons.lang3.math.NumberUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* 若Runable执行的时间超过 MAX_QPS / qps,则实际的QPS会低于实际的值。
*/
public class QpsProxy {
private final Logger logger = LoggerFactory.getLogger(QpsProxy.class);
private final static int MAX_QPS = 1000;
private ScheduledExecutorService scheduledExecutorService;
private long qps = NumberUtils.LONG_ONE;
private Runnable runnable;
private long delay