Я читал о "Tornado Web Server". В нем говорится, что это неблокирующий веб-сервер. Есть ли какой-либо неблокирующий сервер для Java-приложения?
Неблокирующий веб-сервер для 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, и добавили поддержку для нее в какой-то момент.
Ответ 4
Помимо серверов, перечисленных в списке BalusC, есть также Grizzly.
Вот хороший описание его неблокирующей операции.