私は、負荷分散が非常に重要な問題である YII フレームワークでソーシャル ネットワーキングの非常に大きなプロジェクトに取り組んでいます。私が必要としているのは、負荷分散を効率的な方法で実行できるように、3 つのレイヤー (モデル、ビュー、コントローラー) すべてを異なる EC2 アマゾン サーバーに保持したいということです。
YII でそのために何ができますか?
助けはありますか?
私は、負荷分散が非常に重要な問題である YII フレームワークでソーシャル ネットワーキングの非常に大きなプロジェクトに取り組んでいます。私が必要としているのは、負荷分散を効率的な方法で実行できるように、3 つのレイヤー (モデル、ビュー、コントローラー) すべてを異なる EC2 アマゾン サーバーに保持したいということです。
YII でそのために何ができますか?
助けはありますか?
負荷分散のために、アプリケーションを 3 つの異なるインスタンスに分離しないでください。
複数のサーバーに同じアプリ (すべてのモデル、ビュー、およびコントローラーを含む) を配置し、各サーバーの CPU と RAM の使用状況に応じて、ロード バランサーがエンド ユーザーを適切なサーバーにリダイレクトします。
別のアプリが実行可能かどうかさえわかりません。もしそうなら、ユーザーはもっと長く待たなければなりません:
最後に、ユーザーはロードされたサーバーよりも長く待機することになります!
私が使用する解決策は、アプリケーションを 3 つのサーバーにデプロイし、それらを rsync を使用してデプロイ サーバーから同期させることです。私の静的コンテンツは 4 番目のサーバーから取得されますが、3 つの正確なクローンとして、すべてのコードが 3 つのサーバーに配置されます。Imo これは最高です。なぜなら、Amazone を使用すると、バランスを調整する必要がある場合に、より多くのクローンを作成できるからです。
ロード バランシングとは、ユーザーの一部を 1 つのサーバーに配置し、別の部分を 2 番目のサーバーに配置するということです。しかし、モデル/コントローラー/ビューを分割すると、ロード バランシングとは何かがわかりません。
Amazon の Elastic Beanstalkサービスを強くお勧めします。Yii フレームワークに基づいて開発中のプロジェクトに使用しているためです。