我可以在同一个项目中使用JRuby on Rails和Java Servlet吗?

时间:2012-09-12 11:15:58

标签: java ruby-on-rails servlets jruby warbler

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

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

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

但是要使用EventMachine,Web服务器必须基于事件,而Tomcat则不是这样。

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

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

感谢您的所有兴趣。任何建议都非常感谢。

1 个答案:

答案 0 :(得分:0)

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

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