代码之家  ›  专栏  ›  技术社区  ›  Teja Kantamneni

Lift框架的Comet/Reverse Ajax的可扩展性如何?

  •  11
  • Teja Kantamneni  · 技术社区  · 15 年前

    我最近学习了scala,即将开始工作/学习电梯框架。浏览这些特性并开始使用框架,我看到了框架的一些惊人功能,包括反向Ajax和Comet。在我之前的经历中,我对反Ajax有过非常糟糕的经历,它从来没有扩展过。如果我为任何开发选择提升框架,这就是原因。我的问题是技术和产品有多成熟,在Tomcat上使用Lift有多大的可扩展性?与servlet spec 3.0相比,哪一个更好,等待servlet spec 3.0或开始使用lift?

    1 回复  |  直到 15 年前
        1
  •  13
  •   Daniel Spiewak    15 年前

    反向Ajax 彗星。它们只是同一事物的两个不同名称。至于你问题的根源…

    Lift的Comet支持的可伸缩性很大程度上取决于servlet容器。你 真正地 需要一个本机支持延续的容器。杰蒂是我熟悉的那个,但我很确定还有其他人。通过在容器级别提供持续支持,您可以避免锁定每个客户机的线程,这是Comet的大部分可伸缩性问题的根源所在。

    在可扩展性的其他领域,电梯 CometActor 是一个带有活动长轮询的单个客户机的通用抽象。因为这个抽象是一个参与者,所以可以在现有的参与者框架(scala stdlib for lift 1.0.x,或者lift actors on 2.0)中处理。这也避免了线程伸缩的问题,并确保挂起的更新将以有序的方式排队。

    简言之,Lift的Comet支持几乎和Comet一样可扩展。当然,这项技术也有内在的管理费用。您永远无法避免为每个客户机提交至少一个套接字。然而,电梯(连同一个支持连续性的集装箱)能够减轻任何非必要的高空作业。