Яка різниця між Jetty та Netty?


143

У чому головна відмінність Jetty від Netty?

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

Чи підтримує Netty Servlets 3.0?

Відповіді:


199

Jetty - це легкий контейнер для сервлетів, який легко вбудовуватись у java-додаток, також є простий у користуванні jetty-клієнт.

Netty - це асинхронна мережева програма, керована подіями. Ви можете написати власний контейнер сервлетів або http-клієнтський додаток, наприклад, за допомогою рамки Netty.

Редагувати:

Забув згадати, що Jetty 8 та Apache Tomcat 7 підтримують специфікацію сервлета 3.0, але netty - ні. Тому що це не контейнер сервлетів.


8
Jetty - це також Http-сервер. це в комплекті. І Http Server, і сервер додатків / контейнер сервлетів
KyelJmD

6
Я досі не бачу стосунків між ними. Чи є Netty для логіки транспортного шару, а jetty - для логіки шару додатків?
Шрідхар Сарнобат

15
@ Sridhar-Sarnobat Так, Netty призначений для транспортного шару, тоді як jetty призначений спеціально для програм, орієнтованих на http. За допомогою Netty ви можете оптимізувати обрамлення повідомлень та кодування / декодування дуже точно, тоді як ви застрягли в HTTP за допомогою Jetty.
laughing_man

1
Це просто дає мітки на кожному веб-сайті.
заплив

49

Я думаю, що з часом перекриття збільшується, оскільки обидва проекти додають нові функції.

Ось орієнтир: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

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

Netty - це серверний сервер для клієнтів NIO, який дозволяє швидко та просто розвивати мережеві додатки, такі як сервери протоколів та клієнти. Це значно спрощує та впорядковує мережеве програмування, наприклад, TCP та UDP-сервер сокет. Тож Netty орієнтується на допомогу в написанні NIO / неблокуючих асинхронних мережевих програм.

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


19

Це грубе спрощення, але воно дозволяє легко зрозуміти різницю:

Netty - це основа для написання програм TCP .

Jetty - це основа для написання HTTP- додатків.


2
Досить стислий.
Датський Алі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.