SpringMVC异步化请求初探(续-压测效果对比)
上篇总结
上次主要介绍的Servlet3.0异步请求,SpringMVC的deferredResult对异步的封装使用,以及使用高大上的RxJava2配合SpringMVC写出优雅的代码…但是上一次压测的结果并不太好,所以我要再开一片文章,争取测出好结果。
基准数据
上次压测的数据有点问题,需要修改下系统配置然后重新测试,原因如下:
macOS has only 16K ports available that won’t be released until socket
TIME_WAIT is passed. The default timeout for TIME_WAIT is 15 seconds.
Consider reducing in case of available port bottleneck.
修改方法:
sudo sysctl -w net.inet.tcp.msl=200
同步请求代码:
Controller:
@GetMapping("/sayHello")
String say() {
return observerService.helloWorld();
}
Service:
String helloWorld() {
//throw new IllegalArgumentException();
return "hello world";
}
压测结果:
# tomcat 200线程
# 60秒 400并发
siege -c400 -t60s http://localhost:8080/update/sayHello
Lifting the server siege...
Transactions: 91793 hits
Availability: 100.00 %
Elapsed time