我的项目需要 Rails 和 Java 来实现特殊的扩展能力。

我们首先启动了一个纯JRuby on Rails 项目,并将其部署到Tomcat。问题是我们的 Tomcat 服务器资源非常有限,只有 20-30 个线程。这意味着我们的网络应用一次只能同时为 20-30 个用户提供服务。

我们计划通过使用 EventMachine 将一些繁重的同步代码转换为事件代码来提高吞吐量。使用事件代码,单个线程可以完成更多工作,而不是等待长时间的工作完成。

但是要使用EventMachine,web服务器必须是基于事件的,而Tomcat则不然。

在 JRuby/Tomcat 中似乎没有混合多线程和事件的解决方案,所以我们决定将 Servlet 3.0 中的异步支持与我们当前的 Rails 应用程序结合起来。部分代码将使用 Java 和 Servlet 库编写。这听起来很疯狂,但我们认为它最适合我们。

无论如何我可以用 JRuby Rails、Warbler 和 Java Servlet 3.0 做到这一点吗?

感谢您的关注。非常感谢任何建议。

请您参考如下方法:

我自己还没有尝试过,但我想您应该能够创建一个标准的 jruby+rails 应用程序,将其打包为一个 war 文件,然后配置 web.xml 以在某些 url 上使用 servlet。

此外,此基准表明混合 java 和 jruby 解决方案是优化瓶颈的好主意 http://www.techempower.com/blog/2013/03/28/framework-benchmarks/


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!