Deployment 如果我想将Play Framework应用程序部署到多个服务器,我应该怎么做?

Deployment 如果我想将Play Framework应用程序部署到多个服务器,我应该怎么做?,deployment,playframework,playframework-2.0,load-balancing,web-deployment,Deployment,Playframework,Playframework 2.0,Load Balancing,Web Deployment,如果我想使用PlayFramework2.x将我的应用程序部署到多个服务器上,我需要关心什么 如果我使用的是(内置)会话,那么它是否对所有节点都可用,因为它们存储在浏览器端 除了将变量存储在数据库中之外,如何在应用程序范围内共享变量 将生产中的播放应用程序放到多个服务器节点时,应检查以下步骤: 确保每个节点上的应用程序机密(对会话cookie进行加密和签名)都相同,因为您无法确定哪个节点将发送HTTP响应 确保未使用内置缓存系统(ehcache)存储用户特定信息(因为缓存存储在服务器内存中)

如果我想使用PlayFramework2.x将我的应用程序部署到多个服务器上,我需要关心什么

  • 如果我使用的是(内置)会话,那么它是否对所有节点都可用,因为它们存储在浏览器端

  • 除了将变量存储在数据库中之外,如何在应用程序范围内共享变量


  • 将生产中的播放应用程序放到多个服务器节点时,应检查以下步骤:

    • 确保每个节点上的应用程序机密(对
      会话
      cookie进行加密和签名)都相同,因为您无法确定哪个节点将发送HTTP响应
    • 确保未使用内置缓存系统(ehcache)存储用户特定信息(因为缓存存储在服务器内存中)
    就这些

    因此,要回答您的其他问题:

  • 如果使用(内置)会话,则存储在
    会话
    cookie中的信息将可用于每个服务器节点(因为它来自客户端)。请记住,在一些旧浏览器(IE6)中,cookie的容量限制为4kb,因此请注意您在会话中输入的信息量
  • 如果要共享其他应用程序范围的变量:

    • 如果信息是特定于用户的,您还可以将其存储在
      会话
      或其他cookie中。例如,如果要保存当前用户的主题:
      response().setCookie(“主题”、“蓝色”)。然后,您可以使用Http.Request.current().cookies.get(“主题”)
      检索存储的信息。你可以更深入地了解

    • 如果您想在多个节点之间共享其他变量,您必须使用分布式缓存解决方案,如或,您建议的数据库

  • 如果还没有,你应该调查一下