2

私は、その状況下で、

  1. 書き込みよりも読み取りの方がはるかに多い
  2. 選択した SQL サーバーは安価/無料で、高速ミラーリング/レプリケーション サービスを提供します
  3. あなたのデータベースはそれほど大きくありません

別々の SQL サーバーを用意するよりも、各マシンに SQL のインスタンスを用意して、マスターから即座に更新を取得する方がよいでしょう。この方法では、すべての読み取りクエリを実行するときにネットワーク遅延は発生しませんが、SQL インスタンスを実行する必要があるため、ボックスごとのパフォーマンス ヒットが発生します。これにより、全体的にパフォーマンスが向上しますか? 他に考えられる長所/短所はありますか?

4

4 に答える 4

5

SQL Serverは、常にWebサーバーとは別のボックスに配置する必要がありますが、問題はありません。

使用しているDBサーバーとWebサーバーの数、およびそれらがどのようにミラーリング(またはその他)するかは、アプリケーションのスケーリング方法によって異なります。

大量のRAMを必要とする(そしてそれに値する)ため、別のマシンにSQLServerがあります。

于 2009-08-17T11:01:36.087 に答える
1

データベースの読み取り専用レプリカを持つことは、非常に一般的なアーキテクチャ パターンです。ある程度の古さは認めますが、おそらく 1 日に 1 回しか更新されません。

一般的なルールは、複数のコピーは運用と管理の面で複雑さをもたらし、データの不整合の可能性を導入する傾向があるということです - ほとんどの場合、コピーは完全ではありません (または、コピーを作成するコストが高すぎます)。 .)

例: レプリケーション処理が少し壊れたらどうなりますか。そのため、すべてではなく一部のコピーが古くなります。これで、ユーザーは根本的に異なる世界観を見始めます。それはあなたにとってどれほど重要ですか?価値の低いデータ (ロンドン郊外での有名人の目撃情報など) のサイトであれば、おそらくそれで問題ありません。手元に在庫があり、期限が切れているために顧客が注文できない場合は、もっと気にかけているかもしれません。

私のアドバイス: 箱入りの紙のようなレベルでは単純に聞こえることは、午前 3 時に手術室に座っているときは必ずしもそのようにうまくいくとは限りません。ソリューションを簡単に操作できることを十分に確認してください。

于 2009-08-17T11:17:35.447 に答える
1

あなたの SQL Server はどのように安価/無料になりますか? このセットアップのライセンス費用は壊滅的なものになるだろうと言ったはずです. 小売価格では、サーバーあたり6000 ドル です。コストに関するJeff のコメントも参照してください。どうしても Web サーバーをスケールアウトしますが、SQL Server はほぼ完全に機能しなくなるまでスケールアウトしないでください。

代わりに、 VelocityNCacheなどの分散キャッシュについて考えたいと思うかもしれません。

いずれにせよ、最初に 1 つの SQL サーバーでサイトを実行し、それが負荷にどのように対処するかを確認してから、サーバー間のミラーリング/レプリケーションについて考えてください。まずは測定!

于 2009-08-17T11:36:39.900 に答える
0

直接の欠点は、SQL Serverに分散ロックコーディネーターがないため、更新によって2つの異なるサーバー上の同じ行が同時に変更される可能性があるため、マージの競合が発生する可能性があることです。

データベースとWebサーバー内のディスクのサイズによっては、Webサーバーのディスクは通常、提供するディスクアレイほどパフォーマンスが高くないため、ネットワークの遅延は、発生し始めるディスクの遅延よりも小さいことがわかります。データベース。そのようなパフォーマンスが必要な場合は、Webサーバーごとに購入することになります。

レプリケーションのパフォーマンスにも遅延がないわけではなく、トランザクションの分散は「無料」ではなく、トランザクションログの断片化(トランザクションログ内のvlogが多すぎる)が発生しないように、トランザクションログの注意深いメンテナンスを計画する必要があります。レプリケーションのパフォーマンス。

于 2009-08-17T11:04:58.297 に答える