2011-07-05 12 views
0

ユーザーのセッションがサーバー#8にロード・バランシングされ、サーバー8に一部の状態が維持されているとします。ユーザーからの次の操作は、サーバー状態の唯一の場所であるため、サーバー#8に再度ルーティングする必要があります。長期間のセッションでユーザー・セッションからサーバー番号へのマッピングを維持する標準的なソリューションはありますか?多くのサーバーの間で特定のサーバーにユーザーセッションをマッピングするこの問題は、CPUとメモリの効率的な標準的な "教科書"ソリューションの共通の問題であるはずです。サーバーの状態を必要とする長時間のセッションの負荷分散

答えて

0

ベスト・ソリューションは、サーバー・アフィニティに依存しないことです。システムが壊れやすくなります。私はバスでトースターで遊ぶ方法やドライバーで脳の手術をする方法についてテキストの答えを期待しないのと同じ方法で教科書の回答を期待していません。

スティッキールーティングを使用する必要がある場合は、それを実装する方法は、サーバーを使用できないようにする方法に大きく依存します。要求をフェイルオーバーしますか?または、そのサーバーに向けられた処理要求を停止するだけですか?

私は当初、これは非常にばかげた質問だと思っていました。あなた自身のプロキシ/ロードバランサを作成していない限り、関連性は何ですか?(その場合、彼はすでに回答しているはずです)あなた自身の監督を実装する。

最終的には、セッションのどの特性がHTTP要求で表示されるかがわかります。 IPアダーは中間ストリームを変更することができるので、セッションidenitifierは通常はクッキーとして実装されています。

+0

10台のバックエンドサーバーを考えます。フォールトトレランスは、各サーバーを3回複製することで実現します。 ポーカーサービスがあるとします。次に、サーバーの状態を維持する必要があります。各ポーカーハンドは、その状態のクライアントを信用できないため、一部のサーバー上で管理する必要があります。結局のところ、状態を維持するサーバに頼る必要性は、あまり珍しいことではありません。 – user782220

+0

いいえ - セッションデータは、クラスタ内の特定のノードに結び付けられていません。 – symcbean

+0

どのように各ポーカーハンドの状態を維持しますか? – user782220

1

簡単な解決策は、スティッキセッションを使用するようにロードバランサを構成することです。ロードバランサはユーザーセッションをサーバー#8に関連付け、同じセッションからの後続の要求が自動的に同じサーバー(サーバー8)に転送されます。

関連する問題