【问题标题】:What are some alternatives to using Tomcat for Jruby Rack apps?将 Tomcat 用于 Jruby Rack 应用程序有哪些替代方法?
【发布时间】:2010-10-13 21:34:10
【问题描述】:

我们正在为 JRuby on Rails 应用寻找一些替代我们基于 Tomcat 的堆栈的替代方案。

到目前为止,我已经阅读了实际上基于 Tomcat 的 Trinidad gem 和 Glassfish gem。但是,我无法为其中任何一个找到生产示例。它们似乎都允许您只在命令行上运行命令,这对于本地开发人员来说很好,但是人们如何在生产中使用这些解决方案?

这些天来,Glassfish gem 似乎没有太多动作,尽管它因小巧而快速而受到高度吹捧。

是否有其他人认为 JRuby on Rails 应用程序具有高性能、健壮且易于部署的其他设置?

【问题讨论】:

标签: ruby-on-rails deployment tomcat glassfish jruby


【解决方案1】:

Trinidad gem / 嵌入式 Tomcat

如果您深入了解 Github 上的 Trinidad gem 页面,您可以找到各种 Trinidad 扩展 gem 的链接。这里有一个专门用于生产的守护进程:

http://github.com/calavera/trinidad_daemon

如果您执行安装脚本并回答一些简单的问题,它会为您的 Ubuntu 或 OS X 机器生成一个定制的初始化脚本。这几乎就是您所需要的。

这里的 wiki 中也有示例初始化脚本:

http://github.com/calavera/trinidad_daemon_extension/wiki/init.d-scripts

注意在 Rails.threadsafe 中使用!在 trinidad.yml 配置文件中,最小和最大 JRuby 运行时都设置为 1。

我让它在带有 Nginx 前端的 Ubuntu 上运行,并且运行良好。

所以是的,这意味着您使用命令行来停止和启动应用程序服务器,但初始化脚本也会在系统启动时自动调用。该 wiki 还包含一些 Capistrano 部署脚本示例,因此您甚至可以让服务器在您自己的计算机上停止和启动。

注意:有两个守护程序扩展。我链接到的是新的,它使用了更好的守护程序库。

GlassFish 宝石

您说得对,GlassFish 宝石目前没有受到那么多人的喜爱,但我敢说情况会有所改善。使用 JRuby 1.5+ 运行它存在一些问题,因为 gem 没有跟上 JRuby 的变化,但是我在这里写了关于如何解决这些问题的文章:http://www.scottlowe.eu/deploying-rails-3-with-jruby-daemonized-glass

自从撰写 GlassFish 帖子以来,Trinidad 已经获得了可靠的守护进程的能力,因此它可能是今天更顺畅的路径。

【讨论】:

  • 您能否详细说明“胆大妄为的事情会有所改善”?
  • Thorbjørn,几周前我和 JRuby 人一起参加了一个用户聚会之夜,讨论了 GlassFish gem。虽然官方没有做出任何具体的承诺或宣布,但团队肯定希望在不久的将来改善这种情况。我不想歪曲 JRuby 的人,所以我可能不应该再多说了。希望他们中的一个会在这里发表评论。这足以回答您的问题吗?
  • 感谢链接!看起来特立尼达现在可能凭借其守护程序模式成为赢家。
  • 在特立尼达有很好的体验。作者大卫在回答问题和错误方面非常出色,非常感谢您的回答!
  • @PeterEhrlich 是的。 Tomcat 提供了一个更轻量级的可嵌入内核版本;你是对的,这是 Trinidad gem 内部使用的。另请注意,此答案相当陈旧(按 Ruby 标准),并且 GlassFish gem 不再在很大程度上得到维护。今天,Trinidad 或 TorqueBox 都是不错的选择。
【解决方案2】:

嗯,jetty 在 Java 世界中一直对我很有效。一个快速的谷歌搜索出现了一个码头轨道宝石:http://jetty-rails.rubyforge.org/

【讨论】:

  • 我也发现了,但它在过去一年左右看起来相当原始
猜你喜欢
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
  • 2016-04-02
相关资源
最近更新 更多