Какая разница между Jetty и Netty?

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

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

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

Ответ 1

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

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

Edit:

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Netty является основой для написания приложений TCP.

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