Scala / Lift:它需要特殊的http路由吗?

时间:2011-12-01 01:55:40

标签: scala lift

由于Lift是有状态的,因此对页面/站点的每个后续请求都必须返回到同一服务器。据推测,这意味着前端负载均衡器需要跟踪哪个客户端正在与哪个服务器通信。

如何在Heroku / Elastic Beanstalk这样的地方进行托管,其中负载均衡器是由服务自动完成的?我知道如果你自己设置所有的机器,你可以设置路由来做正确的事情,但它如何在这些PaaS类型的主机上工作,这些都是为你做的?

编辑:如果我没有弄错的话,Google App Engine会有同样的限制吗?

2 个答案:

答案 0 :(得分:4)

Heroku会在dynos(进程)之间均匀分配请求,所以我相信你必须使用某种形式的会话序列化来建立有状态的Lift应用程序。我相信Elastic Beanstalk确实有一些设施来支持这一点(正如ELB所做的那样)。

大卫·波洛克(David Pollock)写了关于如何以无状态方式使用Lift的内容,并且还谈到了这个领域中Lift的设计here

答案 1 :(得分:2)

Lift实际上并不打算用于纯无状态模式,它可能,但它不是框架擅长的地方。 ELB确实支持粘性会话,这是为了在几乎任何环境中成功使用Lift所需的配置。

更广泛地说,这种“粘性会话”功能可以通过L4硬件平衡软件实现。您可能对Lift in Action的第15章感兴趣,它花了相当多的时间讨论这个主题和各种会话序列化策略,如果你真的想要它。