gpt4 book ai didi

playframework - 如何运行同一个 Play 的两个实例!框架应用?

转载 作者:行者123 更新时间:2023-12-04 06:25:29 25 4
gpt4 key购买 nike

我正在尝试运行同一个 Play 应用程序的两个实例,以便将来透明地升级应用程序。

当我启动第一个实例时,显然一切都很好。当我启动 start 9525命令在端口 9525 上启动应用程序的第二个实例,我收到以下错误:

Play server process ID is 8909
This application is already running (Or delete .../RUNNING_PID file)

知道如何解决这个问题吗?

最佳答案

This Play's doc已经描述了使用 Apache 进行“透明升级”。一般需要在两个 中启动两个实例单独的文件夹

开头:

  • 创建 dist将应用程序源打包到您的文件夹中
  • 将其解压缩到某个子文件夹,即。 instance1
  • 开始instance1以所需端口为例9998它将成为您的日常实例

  • 更改后,当您想以透明方式重新部署应用程序时:
  • 将更改推送到服务器(假设您正在使用一些版本控制系统,即 git)
  • 创建 dist并解压到其他 文件夹即。 instance2
  • 开始其他 港口即。 9999
  • 停止文件夹中的应用程序 instance1
  • instance2 复制解压后的 dist至instance1
  • instance1 开始申请并在 instance2 上停止应用程序
  • 每次需要重新部署新更改时重复此过程。

  • 当然,创建将同时执行所有步骤的简单 shell 脚本将是您的好 helper 。

    提示:

    为了避免经常重新部署,尤其是当您只需要替换/修改一些 公众 静态 CSS或图片等内容,也可以使用Apache common vhost用于处理这些资源。只需创建一个 vhost对于某些文件夹作为子域,即。 http://static.domain.tld或更好的单独域: http://my-cdn.tld所以你可以使用如下路径:
    <img src="http://static.domain.tld/images/photo.png" alt="" />

    代替
    <img src="/public/images/photo.png" alt="" />

    好处:
  • 您无需重新部署应用程序即可更改这些文件。
  • 您不发送 cookie,这对于公共(public) Assets 来说大多是多余的(如果 vhost 的域不是主项目)
  • 您可以使用 HTTP 服务器的配置来设置缓存标签(性能!)
  • 您正在所有实例之间自动共享静态数据。
  • 您不会浪费 JVM 资源来提供图片 :) 我注意到,虽然 Play 的默认服务器可以非常快,但使用简单的 HTTP 服务器提供静态内容可能更快...

  • 最后,根据我的经验,nginx 比 Apache 快。因此,如果在您的情况下 HTTP 服务器的唯一任务是负载平衡 Play 的应用程序,请考虑使用 nginx,它只是更轻。

    关于playframework - 如何运行同一个 Play 的两个实例!框架应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15748395/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com