Какая библиотека 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 под обложками.