在Java中跟踪websocket连接的最佳实践

在Java中跟踪websocket连接的最佳实践,java,data-structures,websocket,synchronized,Java,Data Structures,Websocket,Synchronized,假设我的游戏服务器可以承载一百万用户,这意味着我需要跟踪一百万个websocket连接,那么适合这样做的数据结构(或集合)是什么?处理同步问题的策略是什么 添加/删除/迭代集合时对集合进行同步。-它可能会影响性能问题 没有同步,当添加新连接或删除现有连接(因为用户脱机)时,它可能无法迭代套接字(例如发送广播消息) 使用CopyOnWriteArrayList,当用户频繁在线/离线时,它会增加GC负载 迭代读取数据时使用readLock,写入数据时使用writeLock。这就是游戏的方式

假设我的游戏服务器可以承载一百万用户,这意味着我需要跟踪一百万个websocket连接,那么适合这样做的数据结构(或集合)是什么?处理同步问题的策略是什么

  • 添加/删除/迭代集合时对集合进行同步。-它可能会影响性能问题

  • 没有同步,当添加新连接或删除现有连接(因为用户脱机)时,它可能无法迭代套接字(例如发送广播消息)

  • 使用CopyOnWriteArrayList,当用户频繁在线/离线时,它会增加GC负载


  • 迭代读取数据时使用
    readLock
    ,写入数据时使用
    writeLock
    。这就是游戏的方式