Tomcat vs Undertow vs Webflux
ĴHipster is used by thousands of people to generate production-ready Spring Boot applications. We've been using Undertow for years, with great success, but as we are planning for JHipster 7 we started discussing migrating away from Undertow.
这种讨论在JHipster社区中经常发生:在这么多人的参与下,我们经常测试并尝试替代当前方法。
我们最后讨论了3种不同的应用程序服务器:
- 来自Red Hat / IBM的Undertow:它以轻量级而著称,我们拥有多年的(良好)经验。Tomcat,来自Apache软件基金会:到目前为止,最受欢迎的选择。 这也是Spring Boot附带的默认解决方案。来自VMWare的Webflux:这实际上不是应用程序服务器,这是运行在Netty之上的Spring Webflux。 这意味着使用反应性API,该API应该提供更好的性能和可伸缩性。 这是一种完全不同的方法,JHipster也支持这种方法。
The test applications
I created a performance benchmarks GitHub repository, with applications generated by JHipster.
这些应用程序比用Spring Boot创建的简单的“ hello,world”应用程序更为复杂和现实。 例如,它们使用Spring Security和Spring Boot Actuator:这些库将影响应用程序的启动时间和性能,但是它们是您在现实世界中使用的库。
然后,它们并不像可能的那么复杂:我没有配置数据库或应用程序缓存。 这些会使运行性能测试变得更加复杂,并且不会增加任何特定的值:由于我们将对所有三个应用程序服务器使用相同的驱动程序或缓存解决方案,因此最终将测试相同的东西。
In the GitHub repository, you will find 4 directories: one for each application, and one with the performance tests.