オンライン ユーザーをデータベース テーブルで追跡するか、メモリだけで追跡するかを決定しようとしています。サーバーが再起動されると、システムが起動するたびにテーブルを切り捨てる必要があるため、インメモリは私にとってはるかに簡単で理にかなっています。また、私のシステムの各ユーザーは連絡先 (他のユーザー) を追加でき、ユーザーがサインオンするたびに、そのユーザーが友達であるユーザーのリストを取得し、ユーザーがオンラインであることを示す signalR メッセージを送信します。したがって、このような場合、メモリからデータを取得する方がはるかに高速になると思いますが、スケールアウトするとどうなるかはわかりません。
質問する
457 次
3 に答える
3
このような場合、メモリからデータを取得する方がはるかに高速になると思います
時期尚早の最適化は諸悪の根源であるため、情報をデータベースに保持し、必要に応じて取得することをお勧めします。次に、メトリックを実行して、オンライン ユーザーの数がパフォーマンスの問題を示し始めた場合に変更を加えることができます。
于 2012-08-30T20:46:44.520 に答える
2
実稼働環境にサーバーを追加する必要がある場合は、セッションをデータベースに保持する必要があります。その結果、すべてのサーバーで共有できるように、オンライン ユーザーのリストをデータベースに含める必要があります。
于 2012-08-30T20:42:58.997 に答える
0
スケールアウトを開始する場合は、とにかくこの情報をサーバー間で共有する必要があるため、最初からデータベースに配置します。SignalRのリファレンスアプリケーションであるJabbRもこれを行うので、それほど悪くはありません。
于 2012-08-31T10:29:16.103 に答える