Неблокирующий веб-сервер / фреймворк для Java - PullRequest
3 голосов
/ 21 ноября 2010

Кто-нибудь знает о каком-либо фреймворке веб-сервера в стиле node.js для Java? Я понял, что наличие неблокирующего поведения обратного вызова при обработке веб-запроса потребует глубокой поддержки на уровне веб-сервера. Я заинтересован в node.js, но когда у меня есть веб-сервер, на котором хранятся данные, я бы хотел воспользоваться преимуществами системы статических типов, которую предлагает Java. Однако я хочу масштабируемость неблокирующих io.

Ответы [ 6 ]

2 голосов
/ 21 ноября 2010

Гризли может быть то, что вы ищете.

Кроме того, если вы заинтересованы в использовании Servlet API, который также предлагает асинхронную поддержку начиная с 3.0 , тогда может быть полезно знать, что приличные сервлет-контейнеры также поддерживают NIO (частопросто используя Grizzly под одеялом), как Apache Tomcat 7 и Oracle Glassfish 3 .

1 голос
/ 16 января 2014

Я думаю, это игра! Framework (см. http://www.playframework.com/).. Он поддерживает разработку на Java и Scala. Play построен на основе Netty (см. http://netty.io/), который сам по себе является клиент-серверной средой NIO (неблокирующей IO). Play (Play) и Netty) используют Futures (результат асинхронной операции / дескриптор чтения для чего-то, что может произойти в определенный момент времени в будущем) и Promises (доступное для записи будущее) для решения этой проблемы (см. http://en.wikipedia.org/wiki/Futures_and_promises)

1 голос
/ 09 января 2011

Deft

Характеристики

  • Специализировано и оптимизировано для тысяч одновременных подключений.(C10k) (C500k)
  • Использование чистого Java NIO (java.nio & java.nio.channels)
  • Асинхронный (неблокирующий ввод / вывод)
1 голос
/ 21 ноября 2010

Может быть, вы вообще этого не хотите.Появляется много доказательств того, что «масштабируемая NIO» на самом деле не дает своих преимуществ огромному количеству клиентов.Помните, что select () и friend были созданы тогда, когда единица вычисления была процессом, а не потоком.Если вы не планируете иметь сотни тысяч подключений с первого дня, я бы определенно сначала встроил java.net, а затем оценил.

0 голосов
/ 03 октября 2018

В настоящее время вы можете использовать две основные платформы:

  1. Play
  2. Vert.x (изначально он назывался node.x)
0 голосов
/ 23 мая 2011

Я задавал себе тот же вопрос, и вместо того, чтобы искать, как я должен был, я смотрел на то, как можно написать среду для развертывания программных компонентов на сервере nio, подобно тому, как вы можете развертывать сервлеты и ejbs наКонтейнер Java EE.Я написал это в http://blog.maxant.co.uk/pebble/2011/05/22/1306092969466.html, на случай, если вам это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...