3

私のプロジェクトでは、特別なスケーリング機能のために Rails と Java の両方が必要です。

最初に純粋な JRuby on Rails プロジェクトを開始し、それを Tomcat にデプロイしました。問題は、Tomcat サーバーのリソースが非常に限られており、スレッドが 20 ~ 30 しかないことです。これは、Web アプリが同時に 20 ~ 30 人のユーザーにしかサービスを提供できないことを意味します。

EventMachine を使用して、一部の重い同期コードをイベント付きコードに変換することで、スループットを向上させる予定です。evented-code を使用すると、長時間のジョブが終了するのを待つ代わりに、1 つのスレッドでより多くの作業を実行できます。

ただし、EventMachine を使用するには、Web サーバーがイベントベースである必要がありますが、Tomcat はそうではありません。

JRuby/Tomcat にはハイブリッドのマルチスレッドおよびイベント ソリューションがないように思われるため、Servlet 3.0 の非同期サポートを現在の Rails アプリと組み合わせることにしました。コードの一部は、サーブレット ライブラリを使用して Java で記述されます。クレイジーに聞こえるかもしれませんが、それが私たちにとって最も適していると考えています。

JRuby Rails、Warbler、およびJava Servlet 3.0でそれを行うことができる方法はありますか?

ご関心をお寄せいただきありがとうございます。どんな提案でも大歓迎です。

4

1 に答える 1