ノードの非同期処理を利用するために、Java Webサーバーの前にnode.jsを配置することに取り組んでいます-いくつかの軽い処理とその他のタスクを実行し、最終的にsocket.ioを実行します。アプリの実際の作業のほとんどは Java で行われ、これまですべてのリクエストを処理するために jetty ウェブサーバーを使用してきました。最初は node-http-proxy を使用して転送することを検討していました (おそらく変更されたリクエスト)。さらに検討した結果、http 要求を転送する代わりに、RabbitMQ や node-amqp ライブラリなどを使用して、より堅牢な通信プロトコルを使用できることに気付きました。これにより、java から node および socket.io を介してブラウザに戻るプッシュのサポートも向上します。
私の質問は次のとおりです。ノードですべての受信リクエストを処理するようになりましたが、jetty 内で Java を実行し続ける理由はありますか? そうでない場合は、文字通り、コマンド ラインのメイン メソッドから Java コードを実行する必要がありますか? 最後に、このアプローチに大きな欠陥はありますか?
私たちのアプリケーションは単一ページのアプリケーションであり、最初にページをロードするための最初のリクエストを超えて、それ以降のすべての呼び出しは安静な json 呼び出しであり、amqp 経由で簡単に転送できるはずです。