2010-02-14 13 views
11

Recientemente aprendí Scala y estoy a punto de comenzar a trabajar/aprender Lift Framework. Revisando las características y comenzando con el framework, había visto algunas capacidades increíbles del framework, incluyendo el ajax inverso y el cometa. Anteriormente, en mi experiencia, tuve una experiencia realmente mala con el ajax inverso, que nunca fue escalado. Si elijo el marco de elevación para cualquier desarrollo, esta será la razón. Mi pregunta aquí es qué tan madura es la tecnología y el producto, y qué tan escalable es utilizando Lift on Tomcat. Comparando con la especificación de servlet 3.0, ¿cuál es mejor para este propósito, espere a la especificación de servlet 3.0 o comience a usar lift?¿Qué tan escalable es el cometa/ajax invertido de Lift Framework?

Respuesta

13

Reverse AJAX es Comet. Son solo dos nombres diferentes para la misma cosa. En cuanto a la raíz de su pregunta ...

La escalabilidad del soporte de Lift's Comet depende en gran medida del contenedor de servlets. Usted realmente necesita un contenedor que admita continuaciones de forma nativa. Jetty es con quien estoy familiarizado, pero estoy bastante seguro de que hay otros. Al contar con soporte de continuación en el nivel de contenedor, puede evitar bloquear un hilo por cliente, que es de donde provienen la mayoría de los problemas de escalabilidad de Comet.

En otras áreas de escalabilidad, Lift CometActor es la abstracción genérica alrededor de un único cliente con una encuesta larga activa. Debido a que esta abstracción es un actor, se puede manejar dentro del marco de actor existente (Scala stdlib para Lift 1.0.x, o Lift actors on 2.0). Esto también evita el problema de escala de subprocesos y asegura que las actualizaciones pendientes se pondrán en cola de manera ordenada.

En resumen, el soporte de Lift's Comet es tan escalable como Comet. Por supuesto, hay gastos generales intrínsecos asociados con la técnica. Nunca podrá evitar comprometer al menos un socket por cliente. Sin embargo, Lift (junto con un contenedor habilitado para continuación) puede mitigar cualquier sobrecarga no esencial nada más sacarlo de la caja.