1
私はいくつかのサーバがある場合:192.168.100.1、192.168.100.2、192.168.100.3、192.168.100.4 ... 及びそれらの重みを、次のとおりです。5、1、2、3C#を使用して加重ラウンドロビンを実装する方法は?
私は、負荷分散を実装しますC#を使用して加重ラウンドロビンを実装するにはどうすればよいですか?
私はいくつかのサーバがある場合:192.168.100.1、192.168.100.2、192.168.100.3、192.168.100.4 ... 及びそれらの重みを、次のとおりです。5、1、2、3C#を使用して加重ラウンドロビンを実装する方法は?
私は、負荷分散を実装しますC#を使用して加重ラウンドロビンを実装するにはどうすればよいですか?
サーバーがあるとします。a
、b
、c
、d
です。そして対応する体重は5
,1
、2
、3
です。あなたは次のように重み付けラウンドロビンを行うことができます。
Random rand = new Random(seed);
void processRequest(Request r){
// assume rand.next() returns a uniformly distributed integer >= 0
int i = rand.next() % 11; // 11 is sum of weights
if(i <= 4) // process r with server a
else if(i == 5) // process r with server b
else if(i <= 7) // process r with server c
else // process r with server d
}
rand.next() % 11
は[0, 10]
(包括的)の範囲に一様に分布する整数を返します。可能な値のうちの5つについてのサーバa
でリクエストを処理します。可能な値は5
のようにサーバーb
でリクエストを処理します。
使用する特定のランダムメソッドとシード値に特に注意してください。
上記のコードでは、私は4,5,7の数を理解していますが、私のウェブサイトにはサーバーと重量が設定されています。 – Net205
上記のコードでは、希望する重み付けがあらかじめわかっているものと仮定しています。だからあなたは希望の重み付けを知らないのですか?どのように/いつこれを理解しますか? – SundayMonday
@SundayMondayこれはしばらくの間探してきた解決策のようです。私の場合は、これを.aspxページに実装して、ユーザーをデータベースから引き出している適切なURLにリダイレクトすることを想定しています。私の状況に合わせて詳細をあなたの答えに詳しく説明してください。 Thanxと素敵な仕事...私はC#もデータベースから取得しているサーバーの重みを使用しています。 –