【发布时间】:2015-04-14 09:50:11
【问题描述】:
如果我想使用 Play Framework 2.x 将我的应用程序部署到多个服务器,我需要注意什么?
如果我使用(内置)会话,由于它们存储在浏览器端,所有节点都可以使用它吗?
除了将变量存储在数据库中之外,如何在应用程序范围内共享变量?
【问题讨论】:
标签: deployment playframework playframework-2.0 load-balancing web-deployment
如果我想使用 Play Framework 2.x 将我的应用程序部署到多个服务器,我需要注意什么?
如果我使用(内置)会话,由于它们存储在浏览器端,所有节点都可以使用它吗?
除了将变量存储在数据库中之外,如何在应用程序范围内共享变量?
【问题讨论】:
标签: deployment playframework playframework-2.0 load-balancing web-deployment
将 Play 应用程序投入生产到多个服务器节点时,您应该检查以下步骤:
session cookie)都是相同的,因为您无法向哪个节点发送 HTTP 响应。就是这样……
所以回答你的其他观点:
session cookie 中的信息将可供每个服务器节点使用(因为它来自客户端)。请记住,在某些旧浏览器 (IE6) 中,cookie 的大小限制为 4kb,因此请注意您在会话中输入的信息量。如果您想共享其他应用程序范围的变量:
如果信息是用户特定的,您也可以将它们存储在session 或另一个cookie 中。例如,如果您想保存当前用户的主题:response().setCookie("theme", "blue");。然后您可以使用Http.Request.current().cookies.get("theme") 检索存储的信息。您可以深入了解play sessions and cookie。
如果您想在多个节点之间共享其他变量,则必须使用分布式缓存解决方案,例如 memcached,或者您建议的数据库。
如果还没有完成,你应该看看how to deploy play to production
【讨论】: