Sto lavorando a un'applicazione RESTfull che richiede un'elevata scalabilità. Sto considerando i framework basati su Netty per le applicazioni RESTfull. Ho esaminato alcune delle opzioni disponibili e ho cercato di ottenere ciò che potevano offrire come un'implementazione non bloccante. Ecco i miei risultati:Framework REST non bloccante basato su n.
- rest.li -> Ancora in fase sperimentale per implementazioni NIO basate su Netty. Quindi, non pronto per la produzione.
- RESTEasy -> Progetto JBoss standard che supporta Netty 4.x. Ma, invece di un'implementazione completa NIO basata su Netty stack, RESTEasy è uno scambio di buffer tra Netty e RESTEasy. Non sta prendendo i vantaggi di Netty. Pertanto, la scalabilità non è elevata come previsto da un framework basato su Netty.
- Componente Netty-http -> Un'altra opzione è l'integrazione di Apache Camel mentre si utilizza il componente Netty-http come endpoint per instradare le richieste ai servizi esposti dai bean. Penso che sia come RESTEasy, solo il componente Netty-http usa le funzionalità NIO basate su Netty e il resto del sistema userebbe il vecchio IO. Non credo che sarei di grande aiuto per ottenere scalabilità.
- RESTExpress -> Sostiene di essere un framework basato su Netty per l'applicazione RESTFull. Ma, né ha una comunità decente né può essere attendibile (perché è molto nuovo) per l'applicazione aziendale che richiede un alto grado di sicurezza.
Prima di ottenere i risultati di cui sopra, volevo utilizzare alcuni framework pronti all'uso e portare a termine il lavoro più rapidamente.
So che è una domanda basata sull'opinione. Tuttavia, ho ancora seriamente bisogno di aiuto per scegliere il framework giusto per la mia applicazione. Se nel caso, non esiste un framework REST basato su Netty: sarebbe saggio optare per il codice NIO di basso livello basato su Nether per l'impianto idraulico nella mia applicazione? Qualsiasi aiuto apprezzato. Grazie in anticipo.
Potreste essere sorpresi che BIO spesso si comporta meglio di NIO particolare per il caso di richieste brevi (cioè senza tenere in vita o websocket). La maggior parte dei client REST e anche REST in generale sono brevi richieste. –
L'utilizzo di un framework NIO REST non renderà magicamente scalabile l'applicazione. Rendere l'applicazione stateless e utilizzare correttamente le intestazioni della cache è un buon inizio. – eiden
@eiden Sto già giocando con Akka-Actors con funzionalità remote per renderlo un'applicazione altamente scalabile e distribuita. Volevo solo sbarazzarmi della natura di blocco dell'API Servlet. Ho iniziato a giocare con Spray + Akka Actors. –