Неблокирующий веб-сервер для Java

Я читал о "Tornado Web Server". В нем говорится, что это неблокирующий веб-сервер. Есть ли какой-либо неблокирующий сервер для Java-приложения?

Ответ 1

Таким образом, вы ищете Java servletcontainer/applicationserver, который поддерживает NIO (Non Blocking IO).

Практически все они поддерживают NIO: Apache Tomcat, JBoss AS, Oracle Glassfish и т.д. На некоторых из них (например, Apache Tomcat) вы должны сначала внести некоторые изменения в конфигурацию (см. Также его HTTP-коннекторную документацию в отношении NIO), Glassfish использует под обложками Grizzly как реализация NIO HTTP-коннектора.

Что касается выбора, это зависит от того, какие части предоставлены огромным API Java EE 6, который вы хотели бы использовать. Если это просто JSP/Servlet, то Tomcat хватает. Если вам нужно немного больше, чем просто JSP/Servlet, может быть достаточно веб-профиля Glassfish. Если вы хотите использовать весь API Java EE 6, перейдите к JBoss AS или Glassfish Full Platform.

Ответ 2

Также есть неблокирующая библиотека в java, называемая Netty, и вы можете использовать Netty для записи сетевых серверов asyn, таких как веб-серверы.

Ответ 3

Неблокирующие сокеты были доступны в Java в java.nio pacakges, так как Java 1.4.

Grizzly сервер - это контейнер сервлета, основанный исключительно на NIO. Большинство установленных веб-серверов Java старше, чем функция NIO, и добавили поддержку для нее в какой-то момент.