次の方法で共有


スケーラビリティを考慮した設計をする

スケーラビリティとは、アプリケーションがリソース使用量を線形に増加させ、追加の負荷に対処する機能です。 スケーラビリティは、どの分散アプリケーションでも重要です。 スケーラビリティに対する制限は、通常、リソースの使用と、アプリケーションの設計で誤って作成された依存関係を中心にしています。

次の一覧では、スケーラビリティの問題について説明し、解決策を提案します。

  • コンピューター内リソース。 使用可能なスレッドとメモリの数によって、スケーラビリティが制限される可能性があります。 アプリケーションに最も効率的なスレッド モデルを使用します。

  • コンピューター間リソース。 アプリケーション ワークロードを分散するために使用できるコンピューターの数は、スケーラビリティに影響を与える可能性があります。

  • クライアント アフィニティ アプリケーションによってアフィニティの 2 つの状況が誤って作成される可能性があります。アプリケーションが要求と共に送信するデータからの状態にアプリケーションが依存する状況です。と、アプリケーションでクライアント固有の状態が必要な状況。 クライアントとアプリケーションの間の状態の依存関係を設計しないでください。

  • サーバー アフィニティ COM+ アプリケーションでは、サーバー アフィニティを作成することでスケーラビリティを制限できます。この場合、アプリケーションは特定のサーバー コンピューターに情報を提供することに依存します。 このアフィニティは、多くのデータベース指向アプリケーションで発生する可能性があります。 サーバー アフィニティのボトルネックを回避する最善の方法は、さまざまなサーバー コンピューターにデータをパーティション分割することです。 たとえば、最も頻繁にアクセスされるキーで顧客データをサーバー間で分割したり、顧客の姓 (Server1: a から f、Server2: g-m、Server3: n- z など) を使用して複数のサーバーに顧客データベースをまたがったりします。

    Note

    データのパーティション分割はプログラミング ロジックに大きな複雑さを加える可能性があり、スケーラビリティを向上させる他のオプションが試された後にのみ行う必要があります。

     

  • オブジェクトの有効期間 スケーラブルにするには、COM+ アプリケーションでオブジェクトの有効期間に細心の注意を払う必要があります。 オブジェクトが存在する間は、リソースを消費しています。 コストの高いリソースを保持するオブジェクトの有効期間を慎重に管理することが重要です。 コストの高いリソースを消費しない需要の高いオブジェクトの場合、 COM+ オブジェクト プール は、プール値を管理的に調整して、ハードウェアを利用できるため、スケーラビリティを向上させることができます。 また、接続を管理する自然な方法です。たとえば、20 個の SQL 接続のライセンスがある場合は、[最大プール] 設定で指定できます。

  • アプリケーション コンポーネントのグループ化。 COM+ アプリケーションのスケーラビリティを強化するには、中間層コンポーネントを時間に依存するサービスと時間に依存しないサービスに分割する必要があります。 これにより、Microsoft Windows サービスを使用して必要なコンポーネント アクションを実装することに集中できます。 たとえば、メッセージ キューや COM+ キューに登録されたコンポーネントなどのサービスを使用して、時間に依存しない非同期タスクを処理できます。

可用性の観点でのパーティション分割の設計

デプロイの設計

セキュリティ向けの設計