2017-05-18 7 views
0

Angenommen mein Spieleserver kann 1M-Benutzer hosten, was bedeutet, dass ich 1M Websocket-Verbindungen verfolgen muss, was ist die geeignete Datenstruktur (oder Sammlung) dafür? Und was ist die Strategie, um das Synchronisationsproblem zu lösen?Bewährtes Verfahren zum Verfolgen von Websocket-Verbindungen in Java

  1. Synchronisierung auf der Sammlung beim Hinzufügen/Entfernen/Iterieren der Sammlung. - Es könnte schlechtes Performance-Problem betroffen,

  2. keine Synchronisation, Es könnte Schwierigkeiten haben, mit dem Buchsen Iterieren (zB Broadcast-Nachrichten aussenden), wenn neue Verbindung hinzugefügt oder bestehende Verbindung entfernt wird (weil Benutzer offline gehen)

  3. Verwendung CopyOnWriteArrayList, erhöht sich die GC Last, wenn der Benutzer online/offline häufig

Antwort

1

verwenden readLock wenn Iterierte Daten lesen, writeLock wenn Schreibdaten verwenden. So wird t-io wiedergegeben.

Verwandte Themen