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
Synchronisierung auf der Sammlung beim Hinzufügen/Entfernen/Iterieren der Sammlung. - Es könnte schlechtes Performance-Problem betroffen,
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)
Verwendung
CopyOnWriteArrayList
, erhöht sich die GC Last, wenn der Benutzer online/offline häufig