何百人もの同時ログイン ユーザー (常に約 10,000 ~ 30,000 人のユーザー) に対応する Web アプリケーションがあります。アプリは、特に 1 秒間に数回発生する可能性のある特定のユーザー アクションに関する分析を収集します。
これまでのところ、アプリの設計はかなり分離されており (多くの memcache/redis と遅延 DB 書き込み)、ロックをうまく回避して、何も「集中化」されていないことを確認しました。
経営陣は最終的に、これらのアクションをグローバル カウンター (1 秒の粒度まで) に集約するリアルタイム分析パネルを構築することを決定しました。これらの「グローバル」カウンターを持つ最良の方法は何ですか? 一部の memcache キーをインクリメントすることはできますが、memcaches (EC2) のクラスターがあるため、キーをカウントアップするためにそれらすべてを反復処理すると、このメトリクスが遅れます。その点で多くのボトルネックがあったため、DB は問題外であり、すべての DB 書き込みはメッセージ キュー (beanstalkd) によって遅延されます。
どんなヒントでも大歓迎です。