Java开发的高性能无阻塞Web服务器:Undertow

jopen 11年前

    Undertow用Java写的一个灵活的高性能web服务器,同时提供阻塞和非阻塞的基于NIO的API。

    Undertow 提供一个基础的架构用来构建 Web 服务器,允许您通过合并小单用途处理器来构建一个Web服务器,完全兼容 Java EE Servlet 3.1 和低级非堵塞的处理器。

    Undertow 是红帽公司的开源产品,是 Wildfly 默认的 Web 服务器。
Java开发的高性能无阻塞Web服务器:Undertow

它拥有的特性:

轻量级

Undertow极其轻量级,Undertow核心jar在1MB以下。它是在运行时用不到4Mb的堆空间(heap space),一个简单的嵌入式服务器。

HTTP Upgrade支持

Support for HTTP upgrade, to allow multiple protocols to be multiplexed over the HTTP port。

Web Socket 支持

Undertow提供 Web Sockets的完整支持,包括JSR-356支持的全面支持。

Servlet 3.1

Undertow提供 Servlet 3.1 支持,including support for embedded servlet. It is also possible to mix both Servlets and native undertow non-blocking handlers in the same deployment.

可嵌入

Undertow can be embedded in an application or run standalone with just a few lines of code.

灵活

An Undertow server is configured by chaining handlers together. It is possible to add as much or as little functionality as you need, so you don’t pay for what you are not using.

</div>

下面是一个使用异步IO实现的一个简单的Hello World服务器:

public class HelloWorldServer {        public static void main(final String[] args) {          Undertow server = Undertow.builder()                  .addHttpListener(8080, "localhost")                  .setHandler(new HttpHandler() {                      @Override                      public void handleRequest(final HttpServerExchange exchange) throws Exception {                          exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");                          exchange.getResponseSender().send("Hello World");                      }                  }).build();          server.start();      }  }
</div>

项目主页:http://www.open-open.com/lib/view/home/1392349428460