2010-02-14 15 views
11

Recentemente ho imparato scala e sto per iniziare a lavorare/imparare il framework Lift. Passando attraverso le Funzionalità e iniziando con il framework, ho visto alcune incredibili funzionalità del framework incluso il reverse ajax e la cometa. In precedenza nella mia esperienza ho avuto un'esperienza veramente negativa con l'ajax inverso che non è mai stato ridimensionato. Se scelgo la struttura dell'ascensore per qualsiasi sviluppo, questa sarà la ragione. La mia domanda qui è quanto sia matura la tecnologia e il prodotto e quanto sia scalabile l'utilizzo di lift su tomcat? Confrontando con le specifiche di servlet 3.0 quale è meglio per questo scopo, attendere per servlet spec 3.0 o iniziare a usare lift?Quanto è scalabile la cometa/reverse ajax della struttura di sollevamento?

risposta

13

Reverse AJAX è Cometa. Sono solo due nomi diversi per la stessa cosa. Per quanto riguarda la radice della domanda ...

La scalabilità del supporto di Comet di Lift dipende molto dal contenitore di servlet. È veramente necessario un contenitore che supporta le continuazioni in modo nativo. Il molo è quello con cui ho familiarità, ma sono abbastanza sicuro che ce ne siano altri. Avendo supporto continuativo a livello di contenitore, è possibile evitare di bloccare un thread-per-client, da cui deriva la maggior parte dei problemi di scalabilità di Comet.

In altre aree di scalabilità, Lift CometActor è l'astrazione generica attorno a un singolo client con un polling lungo attivo. Poiché questa astrazione è un attore, può essere gestita all'interno del framework dell'attore esistente (Scala stdlib per Lift 1.0.x o Lift actor su 2.0). Anche questo evita il problema del ridimensionamento dei thread e assicura che gli aggiornamenti in sospeso vengano accodati in modo ordinato.

In breve, il supporto di Lift's Comet è scalabile quanto può essere Comet. Ci sono naturalmente costi generali intrinseci associati alla tecnica. Non riuscirai mai a evitare di commettere almeno un socket per client. Tuttavia, Lift (insieme a un contenitore abilitato alla continuazione) è in grado di mitigare qualsiasi overhead non essenziale appena estratto dalla scatola.