测试并发能力
- 可以通过Jmeter工具或者LoadRunner工具
- 可以通过CountDownLatch编写代码并发测试
1、Jmeter的线程组
CountDownLatch并发测试
测试线程
import java.util.concurrent.CountDownLatch;
public class MyThread implements Runnable {
private final CountDownLatch startSignal;
public MyTestThread(CountDownLatch startSignal) {
super();
this.startSignal = startSignal;
}
@Override
public void run() {
try {
startSignal.await();
//一直阻塞当前线程,直到计时器的值为0
} catch (InterruptedException e) {
e.printStackTrace();
}
//【实际测试操作】
doWork();
}
private void doWork() {
// TODO Auto-generated method stub
System.out.println("do work");
}
}
测试主方法
public class MyTest {
public static void main(String[] args) {
// 初始化计数器为 1
CountDownLatch start=new CountDownLatch(1);
//模擬16个线程
for(int i=0;i<16;i++){
MyTestThread tt =new MyTestThread(start);
Thread t = new Thread(tt);
t.start();
}
//计数器減 1
start.countDown();
//计数器为0,所有线程释放,同时并发
}
}
项目并发
这个要看具体项目和公司用户量甚至分不同的服务
常见软件的并发能力
tomcat 调优后500左右
mysql并发 2000左右
nginx 1w左右
redis 5w左右
OpenRestry 1w乃至 100w 以上单机并发连接
并发没有想的那么高
支付宝大促的时候也就8w-10w的qps
一般公司的并发不会太大。5000的并发量 已经不小了。 如果抗的了5千,说明这个网站有 50-100万人同时在线。 用户量 一定是个 过亿的网站。 一个大型网游 同时100万人在线的都很少
应对并发
1000并发,用tomcat,springmvc框架加缓存就可以应对
1万的并发在关键节点使用内存处理也很容易