Qual é a diferença entre Jetty e Netty?

143

Qual é a principal diferença entre Jetty e Netty?

Netty faz parte do Jboss, mas é o contêiner do servidor web padrão?

O Netty suporta Servlets 3.0?

user646584
fonte

Respostas:

199

Jetty é um contêiner de servlet leve, fácil de incorporar em um aplicativo java, também existe um cliente jetty fácil de usar.

Netty é uma estrutura de aplicativo de rede assíncrona orientada a eventos. Você pode escrever seu próprio contêiner de servlet ou aplicativo cliente http com a ajuda da estrutura Netty, por exemplo.

Editar:

Esqueci de mencionar que o Jetty 8 e o Apache Tomcat 7 suportam as especificações do servlet 3.0, mas o netty não. Porque não é um contêiner de servlet.

Moritz
fonte
8
Jetty também é um servidor HTTP. está empacotado. HTTP Server e Application Server / Servlet Container
KyelJmD
6
Ainda não vejo a relação entre os dois. O Netty é para lógica da camada de transporte, enquanto o jetty é para lógica da camada de aplicação?
Sridhar Sarnobat
15
@ Sridhar-Sarnobat Sim, o Netty é para a camada de transporte, enquanto o jetty é especificamente para aplicativos orientados a http. Com o Netty, você pode otimizar o enquadramento das mensagens e a codificação / decodificação com muita precisão, enquanto está preso ao HTTP com o Jetty.
laughing_man
1
Isso apenas fornece as frases de efeito em cada site.
swade
49

Acho que com o tempo a sobreposição aumenta à medida que os dois projetos adicionam novos recursos.

Aqui está uma referência: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

Jetty é um servidor web (HTTP), semelhante ao Tomcat e outros, mas mais leve que a maioria dos contêineres de servlet. Isso está mais próximo da maneira tradicional Java de executar aplicativos de servidor (servlets, arquivos WAR). Como o Netty, é suficientemente leve para ser incorporado em aplicativos Java.

Netty é uma estrutura de servidor cliente NIO que permite o desenvolvimento rápido e fácil de aplicativos de rede, como servidores e clientes de protocolo. Ele simplifica e simplifica bastante a programação de rede, como o servidor de soquete TCP e UDP. Portanto, a Netty está se concentrando em ajudar a escrever programas de rede assíncrona e não-bloqueantes.

Se você lida muito com protocolos de rede e deseja que ele não bloqueie, use o Netty (geralmente para casos de alto desempenho). Se você deseja um contêiner de servlet HTTP leve, use Jetty.

Christophe Roussy
fonte
19

Isso é simplificação grosseira, mas permite entender facilmente a diferença:

Netty é uma estrutura para escrever aplicativos TCP .

Jetty é uma estrutura para escrever aplicativos HTTP .

Rafis Ganeev
fonte
2
Sucinto o suficiente.
Syed Danish Ali