0

我正在寻找一种在单个服务器上部署多个 JRuby 应用程序的方法,这些应用程序处于不同的阶段,因此使用不同版本的 JRuby,从长远来看,尝试将所有应用程序与所有应用程序同步会非常复杂应用程序服务器,所以我正在寻找类似于 Javaland 中的 Phusion Passenger 4 的东西。

显然,Passenger 允许这样的事情,但没有可用的文档说明这样的设置应该如何工作。Torquebox 在他们的文档中没有提到这个用例。

奖励积分:

  1. 允许git pull部署的解决方案
  2. rvm友好的解决方案
  3. 不基于 Tomcat 的解决方案
  4. 集群友好的解决方案
  5. 自行处理守护进程、路由、资源管理和监控的解决方案
  6. 成熟且积极支持的解决方案

到目前为止,我所看到的所有内容在某些方面都失败了,torquebox 似乎不支持多个 jruby 版本,trinidad 是 tomcat,puma 需要一些手动操作(过程监控,反向代理,......)等

4

2 回答 2

1

可能您最好的选择是使用https://github.com/jruby/warbler以“Java 方式”进行操作

您最终会得到一个将 JRuby 的 jar 打包到存档中的 .war,因此每个应用程序都将拥有自己的 JRuby 版本。这当然需要您设置 Java 应用程序服务器(例如 Tomcat),部署过程通常意味着将打包的 .war 复制到服务器的部署文件夹中。

请注意,这可能需要大量内存,因为 JRuby 使用的任何库都不会被共享(对于某些服务器,您需要确保类加载器在特定部署配置选项期间首先查看战争的 jar)

于 2014-10-29T07:56:58.897 回答
0

最后,我选择了反向代理 + puma + 进程监控工具,但感觉这一定更简单——没有三个不同的软件一起工作来实现它。

优点是它兼容 rvm,可以通过多个 puma 进程支持多个 rubies,并允许 git pull 部署

还有喷气背包作为替代品,但我没有机会玩它

于 2014-11-28T06:42:37.380 回答