2017-05-18 1 views
0

私のゲームサーバーが1Mユーザーをホストできるとします。つまり、1M WebSocket接続を追跡する必要があります。これには適切なデータ構造(またはコレクション)は何ですか?そして、同期の問題を処理する戦略は何ですか?Javaでwebsocket接続を追跡するベストプラクティス

  1. コレクションを追加/削除/反復するときにコレクションで同期します。 - それは、

  2. なし同期を悪いパフォーマンスの問題を打つかもしれないが、それは、(ユーザーがオフラインので)

  3. 新しい接続が追加されたり、既存の接続が削除されたときにソケット(例えばブロードキャストメッセージを送信)を反復処理に問題がある可能性があります
  4. 使用CopyOnWriteArrayList反復は、データを読み取る際に、ときに、ユーザーのオンライン/オフラインで頻繁に

答えて

1

使用readLockそれはGCの負荷を増大させ、writeLock時に書き込みデータを使用しています。それはt-ioの再生方法です。

関連する問題