JRuby部署选项,支持多个版本的JRuby

时间:2014-10-27 10:06:47

标签: rvm jruby passenger torquebox

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

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

奖励积分:

  1. 允许部署git pull的解决方案
  2. rvm友好的解决方案
  3. 非基于Tomcat的解决方案
  4. 群集友好的解决方案
  5. 自行处理守护进程,路由,资源管理和监控的解决方案
  6. 成熟且积极支持的解决方案
  7. 到目前为止,我所看到的一切都失败了,其中一些要点看起来没有失败,而且看起来支持多个jruby版本,特立尼达是tomcat,puma需要一些手持(过程监控,反向代理) ,....)等

2 个答案:

答案 0 :(得分:1)

可能你最好的选择就是采用Java#way"使用https://github.com/jruby/warbler

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

请注意,这可能需要大量内存,因为JRuby使用的库都不会被共享(也需要一些服务器来确保类加载器首先查看战争罐中的内容特定的部署配置选项)

答案 1 :(得分:0)

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

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

还有jetpack替代,但我没有机会玩它