Подтвердить что ты не робот

Какая библиотека NIO (Netty, Grizzly, kryonet,...) для простой реализации серверного сервера в Java?

Наш интерфейс - простой Jetty (может быть заменен сервером Tomcat). Через сервлеты мы предоставляем публичный HTTP API (более или менее RESTful), чтобы выявить наши функциональные возможности продукта.

В бэкэнд у нас есть процесс Java, который выполняет несколько задач обслуживания. Хотя бэкэнд-процесс обычно выполняет собственные задачи, когда время, время от времени, интерфейс должен пробуждать бэкэнд для выполнения определенной задачи в фоновом режиме.

Какая (N) библиотека IO идеально подходит для этой задачи? Я нашел Netty, Grizzly, kryonet и простой RMI. На данный момент я склонен сказать Netty, кажется простым в использовании и, вероятно, очень надежным.

Есть ли у вас опыт в подобных настройках? Каким будет ваш выбор?

спасибо!

4b9b3361

Ответ 1

Попробуйте перевести этот документ, который отвечает на ваш вопрос. http://blog.xebia.fr/2011/11/09/java-nio-et-framework-web-haute-performance/

Это общество, как известные французские эксперты по Java EE, занималось большим количеством серверов NIO в контексте французского вызова, спонсируемого VmWare (USI2011). Речь шла о создании простого приложения Quizz, которое может обрабатывать нагрузку в 1 миллион подключенных пользователей.

Они выиграли этот вызов с отличными результатами. Их реализация была Netty + Gemfire, и они заменили CachedThreadPool на MemoryAwareThreadPool.

Netty, похоже, предлагает отличные результаты и хорошо документирован.

Они также считали Deft, вдохновленные Tornado (python/facebook), но все еще немного незрелые для них.

Изменить: здесь переведенная ссылка, содержащаяся в комментариях

Ответ 2

Мое предпочтение - Netty. Он простой, но гибкий. Очень быстро, и сообщество вокруг Netty удивительно.

Ответ 3

В настоящее время компания, в которой я работаю, оценивает CoralReactor. Это коммерческое программное обеспечение, но у него самый простой API, который я когда-либо видел для Java NIO. Мое личное мнение заключается в том, что Netty делает вещи слишком сложными, особенно если вы хотите идти без мусора и однопоточными, что является требованием для многих компаний из финансовой, рекламной и игровой индустрии.

Ответ 4

Я бы отделил их, используя JMS, просто у вас есть несколько (контрольных) очередей управления, где ваш сервер работает там, и вы закончили. Не нужно писать пользовательский nio api здесь.

Один пример провайдера - hornetq. Это может быть запущено как обработчик jms in process, он использует Netty под обложками.