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

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

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

Что (N)библиотека IO идеально подходит для этой задачи? Я нашла Нетти, Гризли, kryonet и простой РМИ. На данный момент, я склонен сказать Нетти, он кажется простым в использовании и, вероятно, очень надежным.

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

спасибо!

4 ответов


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

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

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

Нетти, похоже, предлагает отличные выступления и хорошо документирована.

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

Edit: здесь переведенные ссылке указана в комментариях


мое предпочтение Нетти. Это просто, но гибко. Очень быстро, и сообщество вокруг Нетти потрясающее.


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


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

один образец поставщик hornetq. Это можно запустить как в процессе брокера jms, а также, он использует Netty под обложками.