2010-02-14 10 views
11

Ich habe vor kurzem scala gelernt und beginne zu arbeiten/lernen Lift Framework. Als ich die Features durchging und mit dem Framework begann, hatte ich einige erstaunliche Fähigkeiten des Frameworks einschließlich der Reverse Ajax und des Kometen gesehen. Früher in meiner Erfahrung hatte ich wirklich wirklich schlechte Erfahrungen mit der Reverse Ajax, die nie skaliert. Wenn ich Aufzugsrahmen für irgendeine Entwicklung wähle, ist das der Grund. Meine Frage hier ist, wie ausgereift ist die Technologie und das Produkt und wie viel skalierbar ist es mit Lift on Tomcat? Vergleichen Sie mit Servlet Spec 3.0 welche besser für diesen Zweck ist, warten Sie auf Servlet Spec 3.0 oder beginnen Sie mit Lift?Wie skalierbar ist der Kometen/Reverse Ajax des Lift-Frameworks?

Antwort

13

Reverse AJAX ist Komet. Sie sind nur zwei verschiedene Namen für die gleiche Sache. Was die Wurzel Ihrer Frage angeht ...

Die Skalierbarkeit der Unterstützung von Lift's Comet hängt stark vom Servlet-Container ab. Sie wirklich brauchen einen Container, der Fortsetzungen nativ unterstützt. Jetty ist mir vertraut, aber ich bin mir ziemlich sicher, dass es andere gibt. Durch die Continuation-Unterstützung auf Containerebene können Sie verhindern, dass ein Thread pro Client gesperrt wird, von dem die meisten Skalierbarkeitsprobleme von Comet herrühren.

In anderen Bereichen der Skalierbarkeit ist Lift CometActor die generische Abstraktion um einen einzelnen Client mit einem aktiven Long-Poll. Da diese Abstraktion ein Akteur ist, kann sie innerhalb des bestehenden Akteur-Frameworks (Scala stdlib für Lift 1.0.x oder Lift actors on 2.0) gehandhabt werden. Auch dies vermeidet das Problem der Thread-Skalierung und stellt sicher, dass ausstehende Updates ordnungsgemäß eingereiht werden.

Kurz gesagt, Lift Comet Unterstützung ist etwa so skalierbar wie Comet sein kann. Mit der Technik sind natürlich intrinsische Gemeinkosten verbunden. Sie werden nie vermeiden können, mindestens einen Socket pro Client zu übertragen. Allerdings kann Lift (zusammen mit einem Container mit Fortsetzungsfunktion) jeden unnötigen Overhead sofort ausgleichen.

Verwandte Themen