2011-12-01 44 views
3

由于Lift是有状态的,因此对页面/站点的每个后续请求都必须返回到同一台服务器。推测这意味着前端负载均衡器需要跟踪哪个客户端正在与哪个服务器通话。斯卡拉/电梯:是否需要特殊的http路由?

在Heroku/Elastic Beanstalk之类的地方如何解决这个问题,负载平衡器都是由服务自动完成的?我知道如果您自己设置所有机器,您可以设置路由以执行正确的操作,但是如何在这些PaaS类型主机上运行,​​这些都是为您完成的?

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

回答

2

提升并非真正用于纯粹的无状态模式,它可能存在,但它并不是框架擅长的地方。 ELB确实支持粘性会话,这是您需要在几乎任何环境中成功使用Lift的配置。更广泛地说,这种“粘性会话”功能可以通过L4硬件平衡软件来实现。您可能会对Lift in Action的第15章感兴趣,如果您真的想要,可以花费大量时间讨论这个主题和各种会话序列化策略。

4

Heroku将均匀地在dynos(进程)之间分配请求,所以我相信你将不得不为有状态的Lift应用程序使用某种形式的会话序列化。我相信Elastic Beanstalk确实有一些设施可以支持这一点(就像ELB一样)。

David Pollock撰写有关如何以无状态方式使用Lift的问题,并且还谈到了Lift在这个区域的设计here