最近、Unicorn として知られる Ruby 用の Web サーバーに出くわしました。これには、シンプルでありながら素晴らしいアイデアがありました。
Unicorn マスターが起動すると、アプリがメモリに読み込まれます。リクエストを処理する準備が整うとすぐに、16 個のワーカーをフォークします。次に、これらのワーカーはソケットで select() を実行し、処理可能なリクエストのみを処理します。このようにして、カーネルが負荷分散を処理します。
これと並行して、それぞれ -Xmx384MB を使用してローカル Tomcat クラスターをセットアップし、それぞれ個別に「共有ソケットで select() を使用して、処理可能な要求のみを処理する」ようにします。
これを実現するために、Tomcat のソース コードまたはスクリプトを微調整する方法を考えています。
Foreman を使用して、同時に 3 つの Tomcat アプリ サーバーを同時に実行できるとしたら、あらゆる可能性を考えてみてください。