私はプロジェクトに取り組んでいます
1.複数のプロセスが一意のポート(おそらく複数のホスト)でリクエストをリッスンする必要があります
2.すべてのプロセスは、固有のクライアントにサービスを提供するためのものです
3. クライアントは、識別子/エンドポイントとして client_id.domainname.com を使用して、それぞれのサーバー プロセスに接続する必要があります。
例: に来るリクエスト
client_id_1.domainname.com:FIXED_PORT should go to host_1:port_1
client_id_2.domainname.com:FIXED_PORT should go to host_2:port_2
etc..
[Edited for clarification : the port number with which client will access should be fixed.Only the client_id would change with change in client]
4.[編集(この点を見逃していた)]。マッピングは動的/変更可能である必要があります。たとえば、1 つのプロセスが停止した場合、別のプロセスを起動する必要がありますが、これは同じポート上にない可能性があります。
次のアプローチを試しました(Javaを使用)
1. tcp サーバーを実装し、http: //code.google.com/p/portforward/ を使用して tcp ポート転送を使用してみました。また、検索で見つけた他の同様のものも使用しました。問題は、これが要求 uri( uri からサブドメインを使用してクライアント ID を取得する)
2.組み込みの桟橋にサーブレットとしてサーバー プロセスを実装しました。これは、GET 要求に対してのみ有効です。を使用して、GET 要求を特定のサーバーにリダイレクトできます。
httpServletResonse.sendRedirect("http://host_1:port_1")
POST の場合、最終的に GET になる RequestDispatcher があります。HTTP 仕様では、POST によるリダイレクトが許可されていないようです。
また、このCalling the doPost in another Webapp with a Req Dispatcher forwardを見つけました。これは、プログラムで POST リクエストを自分で起動することを提案しています (私はまだこのアプローチに取り組んでいません)。
これに対する解決策があることを願っています。非常に単純化しすぎているかもしれませんが、これは HEROKU が行うことと似ていると思います。また、異なるポートで実行されるバックエンド プロセス (dyno) もあります (これについてはよくわかりません)。それらは、アプリに基づいて着信要求と照合されます-以下では http://www.quora.com/Scalability/How-does-Heroku-workについて説明しますが、この質問には回答がありません。
私はこれについてかなり長い間立ち往生してきました.私はあなたの助けに本当に感謝しています.