プッシャー/パブナブのようなサーバープッシュサービスに取り組んでいます。クライアントのポーリングを処理する最も重要な部分は、現在 Node.js と Redis を使用しており、1 つのことを除いて問題なく動作しています。アプリで何が起こっているのかよくわかりません。
全体のアイデアは、ロング ポーリングに基づいています。つまり、大量のリクエストが行き来し、多くの redis をチェックして、何か新しいものがあるかどうかを確認します。問題は、そのようなことを監視する方法が本当にわからないことです。
1 つのサイトで平均 10,000 人のユーザーがオンラインになっているとします。5 秒のポーリング間隔では、毎秒少なくとも 2000 のログ エントリが発生します。大量のログをどのように管理すればよいですか? アプリで何が起こっているのかを少なくともある程度把握するには、logstash などを使用してそれらを収集する必要がありますか?
すべてのインストルメンテーションをオフにして、次のような方法でのみ有効にすることをお勧めしますkill -s USR2
か?
Redis コマンドを使用してデータを収集することも考えましmonitor
たが、実行するだけで redis が 50% 遅くなり、受信データの分析のオーバーヘッドは言うまでもありません。
人々は一般的にこれをどのように処理しますか? 高負荷で高可用性のアプリケーションを構築するための良い本などはありますか?