非常に時間に敏感な Web アプリケーション (応答時間は 100 ミリ秒未満である必要があります) を実行しており、多くの要求 (ピーク時で毎分約 20 万要求) があります。アーキテクチャは非常にシンプルです。ロード バランサー、Apache と php を実行する複数の Web サーバー、MySQL を実行するデータベースです。
また、これらのリクエストに基づいて統計を生成できる必要があります。
約 1 年前、現在のトラフィック量の 10 分の 1 を処理していたとき、定期的に mysql からログをダンプし、それらを別のサーバーに転送し、再度インポートしてそこで統計を実行する bash/python スクリプトをいくつか開発しました。応答時間を短くするために、本番サーバーの処理を最小限に抑えます。
ご想像のとおり、このソリューションはうまく拡張できず、現在、統計サーバーはかろうじて追いついていません。リアルタイムで統計を生成する方法が必要です。
この種のセットアップの経験はありますか? 現時点での私たちの考えは、Web サーバーがリクエストごとにリアルタイムで統計サーバーを呼び出すようにすることです。
主な問題は次の 2 つです。
- 応答時間が長くなりすぎないように、これにどのようにアプローチする必要がありますか
- 統計サーバーまたはサーバーは、すべてのウェブヘッドからのすべてのリクエストを処理する必要があります。または、水平方向にスケーリングできる必要があります。