3つのRuby on Railsアプリケーション(A、B、C)が多数のアプリケーションサーバーにインストールされています。フロントエンドはHAProxy、バックエンドはApache + Phusion Passenger。元々、3つすべてのRailsアプリが各アプリケーションサーバーにインストールされていましたが、HAProxyが指定されたRails =アプリケーションは特定のバックアップサーバーで「ホット」です。
各パッセンジャーインスタンスは、最大8つのRailsアプリケーションインスタンスを実行するように構成されています。
次のシナリオを検討してください(簡略化):
1分あたりのリクエスト数が1トンの場合の大きなスキームでは、3つすべてRailsアプリは各アプリサーバーで頻繁に開始および停止します、遅い。
完璧な世界では、アプリケーションは一度起動すると、シャットダウンして再起動することなく、多くのリクエストを処理します。そのため、アプリサーバーを3つに分割する必要がありましたRailsアプリ:
質問:バックエンドを「認識」し、次の情報を認識して使用して負荷を分散するロードバランサーソフトウェアはありますか。
アイデアは、すべてのアプリがインストールされた多数の「同種の」(同じ)アプリケーションサーバーを用意することです。これにより、新しいサーバーを追加してすべてのアプリの全体的な容量を増やすことができますが、特定のアプリの容量は「非常にスマートな」ロードバランサー。アプリを頻繁に起動および停止しなくても、アプリごとの容量を制御できます。
知りません。
私も同様の問題に直面しています。現時点での最善の解決策は、アプリサーバーの負荷を追跡でき、追跡対象に基づいてロードバランサーの構成をいじることができる管理レイヤーを構築することであると思われます。ただし、これは完全にカスタムビルドされたソリューションであり、まだ作成を開始していません。