Использовать Jetty или Netty?
Мы работаем над написанием высокопроизводительного сервера для обработки сообщений. Мы уже несколько лет используем Jetty, и Netty выглядит так, как будто у него есть интересные функции. В частности, он поддерживает асинхронную обработку, поэтому поток не нужно связывать, ожидая, что система обработает данное сообщение. Он предназначен для решения проблемы C10k.
Я знаю, что Jetty поддерживает некоторую поддержку NIO. Имеет ли она также асинхронную модель?
Сообщения, вероятно, будут в формате http. Есть ли у Netty какие-либо преимущества по производительности перед Jetty при выполнении простого старого http?
Я хотел бы иметь все удобные функции реального контейнера сервлетов, но не за счет снижения производительности.
Ответы
Ответ 1
У Jetty была поддержка асинхронной обработки запросов с версии 6 (см. здесь), используя проприетарный API. Более поздние версии поддерживают асинхронный API как часть API Servlet 3.0, как и любую другую совместимую реализацию.
Использование Netty показалось бы большой работой для небольшого выигрыша, если у вас нет особых требований. В противном случае Jetty выполнил бы эту работу с минимальными усилиями.