В чем разница между Jetty и Netty?

150

В чем основное отличие Jetty от Netty?

Netty является частью Jboss, но является ли это контейнером веб-сервера по умолчанию?

Поддерживает ли Netty сервлеты 3.0?

user646584
источник

Ответы:

206

Jetty - это легкий контейнер сервлетов, который легко встроить в Java-приложение, также есть простой в использовании клиент Jetty .

Netty - это платформа для асинхронных сетевых приложений, управляемых событиями. Вы можете написать свой собственный контейнер сервлетов или клиентское приложение http, например, с помощью инфраструктуры Netty.

Редактировать:

Забыл упомянуть, что Jetty 8 и Apache Tomcat 7 поддерживают спецификацию сервлетов 3.0, а netty - нет. Потому что это не контейнер сервлетов.

Мориц
источник
8
Jetty также является Http-сервером. это в комплекте. И Http-сервер, и сервер приложений / контейнер сервлетов
KyelJmD
6
Я до сих пор не вижу отношения между ними. Netty - для логики транспортного уровня, а причал - для логики прикладного уровня?
Шридхар Сарнобат
15
@ Sridhar-Sarnobat. Да, Netty предназначена для транспортного уровня, а jetty - специально для приложений, ориентированных на http. С Netty вы можете очень точно оптимизировать кадрирование сообщений и кодирование / декодирование, тогда как вы застряли с HTTP с Jetty.
smileing_man
2
Это просто дает слоганы на каждом веб-сайте.
swade
53

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

Вот эталон: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

Jetty - это веб-сервер (HTTP), похожий на Tomcat и тому подобное, но более легкий, чем большинство контейнеров сервлетов. Это ближе к традиционному Java-способу создания серверных приложений (сервлетов, файлов WAR). Как и Netty, он достаточно легкий для встраивания в приложения Java.

Нетти - это клиент- серверная среда NIO, которая позволяет быстро и легко разрабатывать сетевые приложения, такие как серверы протоколов и клиенты. Это значительно упрощает и оптимизирует сетевое программирование, такое как сервер сокетов TCP и UDP. Итак, Netty фокусируется на помощи в написании NIO / неблокирующих асинхронных сетевых программ.

Если вы много работаете с сетевыми протоколами и хотите, чтобы они были неблокирующими, используйте Netty (обычно для высокопроизводительных случаев). Если вам нужен легкий контейнер HTTP-сервлетов, используйте Jetty.

Кристоф Русси
источник
27

Это грубое упрощение, но оно позволяет легко понять разницу:

Netty - это фреймворк для написания TCP приложений .

Jetty - это платформа для написания HTTP- приложений.

Рафис Ганеев
источник
2
Достаточно лаконично.
Сайед Даниш Али