2

私は、負荷分散が非常に重要な問題である YII フレームワークでソーシャル ネットワーキングの非常に大きなプロジェクトに取り組んでいます。私が必要としているのは、負荷分散を効率的な方法で実行できるように、3 つのレイヤー (モデル、ビュー、コントローラー) すべてを異なる EC2 アマゾン サーバーに保持したいということです。

YII でそのために何ができますか?

助けはありますか?

4

3 に答える 3

1

負荷分散のために、アプリケーションを 3 つの異なるインスタンスに分離しないでください。

複数のサーバーに同じアプリ (すべてのモデル、ビュー、およびコントローラーを含む) を配置し、各サーバーの CPU と RAM の使用状況に応じて、ロード バランサーがエンド ユーザーを適切なサーバーにリダイレクトします。

別のアプリが実行可能かどうかさえわかりません。もしそうなら、ユーザーはもっと長く待たなければなりません:

  • フロントコントローラーはいくつかのモデルを呼び出します=>モデルサーバーへの1回または複数回の呼び出し=しばらく
  • フロントコントローラーはデータをビューに送信する必要があります => より多くの時間

最後に、ユーザーはロードされたサーバーよりも長く待機することになります!

于 2013-01-10T13:46:21.393 に答える
0

私が使用する解決策は、アプリケーションを 3 つのサーバーにデプロイし、それらを rsync を使用してデプロイ サーバーから同期させることです。私の静的コンテンツは 4 番目のサーバーから取得されますが、3 つの正確なクローンとして、すべてのコードが 3 つのサーバーに配置されます。Imo これは最高です。なぜなら、Amazone を使用すると、バランスを調整する必要がある場合に、より多くのクローンを作成できるからです。

ロード バランシングとは、ユーザーの一部を 1 つのサーバーに配置し、別の部分を 2 番目のサーバーに配置するということです。しかし、モデル/コントローラー/ビューを分割すると、ロード バランシングとは何かがわかりません。

于 2013-01-10T18:42:53.607 に答える
0

Amazon の Elastic Beanstalkサービスを強くお勧めします。Yii フレームワークに基づいて開発中のプロジェクトに使用しているためです。

于 2013-01-10T17:29:54.547 に答える