Websocket 设计/架构:web套接字一个连接与多个连接
在设计客户机/服务器体系结构期间,将同一进程中的多个WEBSOCKET连接多路复用到服务器(即共享一个连接)与在客户机中每个线程/会话打开一个WEBSOCKET连接(连接到memcached或数据库服务器时通常会这样做)相比,有什么优势 我知道与每个连接相关的开销(例如RAM…)。但预计每个客户端最多只有不到1K-10KWebsocket 设计/架构:web套接字一个连接与多个连接,websocket,memcached,Websocket,Memcached,在设计客户机/服务器体系结构期间,将同一进程中的多个WEBSOCKET连接多路复用到服务器(即共享一个连接)与在客户机中每个线程/会话打开一个WEBSOCKET连接(连接到memcached或数据库服务器时通常会这样做)相比,有什么优势 我知道与每个连接相关的开销(例如RAM…)。但预计每个客户端最多只有不到1K-10K 特定用例: 假设我有一台远程服务器,一端有多个会话,另一端有多个客户端,每个客户端将通过websocket服务器连接到不同的会话。 在远程服务器中,有两种实现方法:(1)每个
特定用例: 假设我有一台远程服务器,一端有多个会话,另一端有多个客户端,每个客户端将通过websocket服务器连接到不同的会话。 在远程服务器中,有两种实现方法:(1)每个会话创建自己的websocket连接(2)所有会话将使用相同的websocket连接 从连接的角度来看,我喜欢共享解决方案(一个websocket连接到所有会话),因为websocket服务器受到可用连接数的限制(保存服务器/扩展) 但从流量/数据速度/性能的角度来看,如果会话将通过连接发送大量小数据包,那么,如果我们使用一个共享连接,我们将无法利用带宽(有效负载..../将少量小数据包收集到一个或将大数据包拆分为小数据包),因为我们可能必须从不同的会话向不同的客户端发送不同的包,在这种情况下,我们将无法收集少数包(小包),因为它们有不同的目的地和来源!!,除非我们将创建“虚拟连接”来管理每个会话数据,以最大限度地提高速度,否则这将造成很大的实现复杂性 还有其他意见吗 谢谢,
JB.
我认为您应该考虑使用有限的连接池,就像数据库连接结构一样。
另一个我考虑的解决方案是Pub/Sub数据库中间人,如ReDIS。这允许您使用现有的解决方案以及更容易的可扩展性
据我所知,拥有单一连接和使用多种连接都有各自的问题 例如,一个连接一次只能发送一条消息。一条足够大的消息可能会阻止连接。。。你在移动大数据吗 许多连接可能会造成开销,这可能非常昂贵,并且会增加出错的机会。考虑以下事项:祝你好运谢谢,的确,有很多问题需要考虑,并且解决方案是基于需求(更重要的是……)。