SpringBoot 2的普通servlet与WebFlux性能对比

18-10-20 banq
         

Spring-boot 2.0 最近发布,每个人都对新功能和改进感到兴奋。Spring 5引入了WebFlux框架,它是一个完全异步且无阻塞的反应式Web堆栈,可以处理大量并发连接。这使我们能够垂直扩展服务以处理相同硬件上的更多负载。

本实验旨在通过捕获高负载下传统的servlet堆栈与反应式堆栈的性能来比较。

测试源码:github

1.同时测试2500个用户

负载的响应时间相似,但是响应式堆栈处理的请求数/秒数超过了servlet堆栈的1.5倍。

2.同时测试5000个用户

反应堆栈在响应时间和它可以处理的请求/秒数方面都具有更好的性能,提高2倍多。

3.同时测试10000个用户

Reactive反应堆栈是明显的赢家。提高5倍多。

我们可以清楚地看到,在不损失性能的情况下,Reactive反应堆栈可承受的负载是一项重大改进。它使我们能够更好地利用硬件专门用于执行大量I / O操作的服务,例如对其他服务进行网络调用或与数据库交互。它在低负载下具有类似的吞吐量,并迅速处理高负载。这是一场大胜利!

         

2