2011-12-26 12 views
21

Stiamo scrivendo un server ad alte prestazioni per l'elaborazione dei messaggi. Usiamo Jetty da diversi anni e piace, ma Netty sembra avere alcune caratteristiche interessanti. In particolare, ha il supporto per l'elaborazione asincrona, quindi non è necessario legare un thread in attesa che il sistema elabori un determinato messaggio. È progettato per risolvere il problema C10k.Usa Jetty o Netty?

So che Jetty ha qualche supporto per NIO internamente. Ha anche un modello asincrono?

È probabile che i messaggi siano in formato http. Netty ha dei vantaggi in termini di prestazioni rispetto a Jetty quando esegue semplicemente http vecchio?

Mi piacerebbe avere tutte le caratteristiche convenienti di un vero servlet container, ma non al costo di prestazioni ridotte.

risposta

26

Jetty ha ricevuto il supporto per l'elaborazione asincrona delle richieste dalla versione 6 (vedere here), utilizzando un'API proprietaria. Le versioni più recenti supportano l'API asincrona come parte dell'API Servlet 3.0, come qualsiasi altra implementazione conforme.

L'utilizzo di Netty potrebbe sembrare un lavoro molto impegnativo, se non si hanno requisiti molto specifici. Altrimenti, Jetty farebbe il lavoro per te con il minimo sforzo.

+9

Buon consiglio, anche se abbiamo deciso di andare con Netty. Il servlet 3.0 api per il supporto asincrono è contorto. È difficile seguire ciò che sta succedendo e facile da incasinare. Inoltre, Netty sarà molto meglio per la gestione del protocollo di basso livello in futuro. Ma la tua risposta è buona. – ccleve

+2

@skaffman: hai qualche indicazione su alcuni articoli/blog in cui Jetty vs Netty è discussa in modo più dettagliato? dal punto di vista di uno si dovrebbe usare Netty o restare con Jetty (o Tomcat o whatnot) –