2011-12-26 1 views
21

Мы занимаемся написанием высокопроизводительного сервера для обработки сообщений. Мы уже несколько лет используем Jetty, и Netty выглядит так, как будто у него есть интересные функции. В частности, он поддерживает асинхронную обработку, поэтому поток не нужно связывать, ожидая, что система обработает данное сообщение. Он предназначен для решения проблемы C10k.Используйте Jetty или Netty?

Я знаю, что Jetty имеет некоторую поддержку NIO внутри страны. Имеет ли она также асинхронную модель?

Сообщения могут быть в формате http. Есть ли у Netty какие-либо преимущества по производительности перед Jetty, когда вы делаете простой старый http?

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

ответ

26

У Jetty была поддержка обработки асинхронного запроса с версии 6 (см. here) с использованием фирменного API. Более поздние версии поддерживают асинхронный API как часть API Servlet 3.0, как и любая другая совместимая реализация.

Использование Netty показало бы большую работу для небольшого выигрыша, если у вас нет особых требований. В противном случае Jetty выполнил бы эту работу с минимальными усилиями.

+9

Хороший совет, хотя мы решили пойти с Netty. Сервлет 3.0 api для асинхронной поддержки запутан. Трудно следить за тем, что происходит, и легко разбираться. Кроме того, Netty будет намного лучше для обработки протоколов низкого уровня в будущем. Но ваш ответ хороший. – ccleve

+2

@skaffman: есть ли какие-либо указатели на некоторые статьи/блоги, где Jetty vs Netty обсуждается более подробно? с точки зрения того, следует ли использовать Netty или придерживаться Jetty (или Tomcat или еще много чего) –

 Смежные вопросы

  • Нет связанных вопросов^_^