陆小曼|吊打 Tomcat,Undertow 性能很炸( 二 )


  • 2.1:当前支持 Servlet 4.0, JDK8+ 的稳定版本;
  • 1.4:当前支持 Servlet 3.1, JDK7 的稳定版本;
独立使用 Undertow 需要添加以下依赖:
io.undertowundertow-core2.1.0.Finalio.undertowundertow-servlet2.1.0.Finalio.undertowundertow-websockets-jsr2.1.0.Final以下示例来源官网:
public class HelloWorldServer {public static void main(final String[] args) {Undertow server = Undertow.builder().addHttpListener(8080, "localhost").setHandler(new HttpHandler() {@Overridepublic void handleRequest(final HttpServerExchange exchange) throws Exception {exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");exchange.getResponseSender().send("Hello World");}}).build();server.start();}}这是一个使用了异常 IO 的简单 Hello World 示例 。
Spring Boot import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** * :Java技术栈 */@RestController@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class);}@GetMapping(value = "http://kandian.youth.cn/undertow/test")public String undertow() {return "hello undertow";}}启动 Application:
陆小曼|吊打 Tomcat,Undertow 性能很炸如上所示 , 可以看到 Undertow 的启动日志 。
访问测试方法:
http://localhost:8080/undertow/test
陆小曼|吊打 Tomcat,Undertow 性能很炸输出成功 , 测试完成 。
总结本文对 Undertow 作了一个介绍和集成实战 , 虽然 Undertow 性能很炸 , 但你可以去网上找一圈 , 根本没啥学习资料 。
所以 , 对于学习和一般应用来说 , Tomcat 足矣 , 一方面 Tomcat 学习资料多 , 另一方面 Tomcat 用的更广泛 , 很多坑别人帮你踩了 , 很多漏洞也已经暴露出来了 。
那于那些一定要追求极致性能的又不想优化 Tomcat 的 , 可以考虑使用 Undertow , 但同时你要有能力 Hold 住它 , 需要一定的积累经验 , 不然出一个问题你线上卡半天显然是不愿意看到的 。
最后 , 网上很多文章说干掉 Tomcat 而要使用 Undertow 的 , 这就有点夸张 , 我只能呵呵了 , 持有保留意见 , 用啥都行 , 关键能不能用好 。


推荐阅读