0

申し訳ありませんが、負荷分散の初心者です。


分散環境では、処理 (マップ/リデュース) をデータに送信して、結果がローカルで計算されてから集計される傾向がますます強くなっています。

私がやりたいことは、複製ではなく、分割/分散されたデータに適用されます。同じような原則に従って、ユーザー データがキャッシュされているサーバーでユーザー リクエストを送信できるようにしたいと考えています。


埋め込みキャッシュまたはデータグリッドを使用して応答時間を短くする場合、データセットが大きい場合、レプリケーションを避けて分散/パーティション化されたキャッシュを使用する傾向があります。

パーティショニング アルゴリズムは一般にハッシュ ベースであり、レプリカを使用してサーバーの障害を処理することができます。

最後に、ユーザー データは通常、3 台のサーバー (プライマリ コピー 1 台とレプリカ 2 台) などでホストされます。

ローカル キャッシュ ミスの場合、キャッシュは通常、他のキャッシュ ピアでエントリを検索できます。これは正常に機能しますが、ネットワーク アクセスが必要です。この無駄なネットワーク呼び出しを回避する負荷分散戦略が必要です。


私が知りたいこと: データが必要な場合、ローカル コピーを持つ Web サーバーの 1 つに常に転送するように、キャッシュのパーティショニング メカニズムを認識しているロード バランサーを使用することは可能ですか?

たとえば、リクエスト www.mywebsite.com/user=387 があります。ロード バランサーは 387 の userId をチェックし、このユーザーがサーバー 1、6、および 12 に格納されていることを認識します。ストラテジー。


一般的なソリューションがない場合、カスタム ルーティング戦略を定義できるオープンソースまたは商用のソフトウェアまたはハードウェア ロード バランサーはありますか?

リクエストのデータをどれだけ抽出すると、ロードバランサーの速度が低下しますか? たとえば、ラウンドロビン戦略と比較して、URLパラメーターを抽出し(user = 387の例のように)、いくつかのルールに従って適切なWebサーバーに移動するコストはいくらですか?

パーティショニング データを簡単に取得してロード バランサーで使用できるようにするために、キャッシュ ベンダーに抽象化ライブラリはありますか?

ありがとう!

4

1 に答える 1

0

興味深い質問です。要件に対してすぐに利用できるソリューションはないと思いますが、ハッシュ基準が比較的単純で、リクエスト (例のように URL パラメーター) のみに依存する場合、構築するのは非常に簡単です。

これを構築する場合、Varnish (http://varnish-cache.org) を使用しますが、他のリバース プロキシでも同じことができます。

于 2012-10-31T08:05:08.583 に答える