N | Solid Runtime是否会使用粘性会话对Websocket进行负载平衡?

当使用群集模块(PM2&Forever)时,负载均衡networking套接字似乎是一个问题:
https://github.com/Unitech/pm2/issues/81
https://stackoverflow.com/a/28075728/275491

乘客声称解决这个问题: https : //www.phusionpassenger.com/library/walkthroughs/basics/nodejs/fundamental_concepts.html#vs-cluster-module

这个链接讨论了websocket与集群模块相关的“粘性负载平衡”: http : //socket.io/docs/using-multiple-nodes/

很有可能这些客户端可能有一个活动的双向通信通道,比如我们可以立即写入的WebSocket,但其中一些可能使用长轮询。

如果他们使用长轮询,他们可能会或可能不会发送我们可以写入的请求。 他们可能是“介于”这些要求之间。 在这些情况下,这意味着我们必须在这个过程中缓冲消息。 为了让客户在发送请求时成功地声明这些消息,最简单的方法是让他连接到同一个进程。

N | Solid是否也解决了与群集模块相关的问题,即具有进程相关性的负载均衡websocket?

nginx可以更好地完成websocket负载均衡的任务,因为您可以更灵活地存储会话信息(在redis上可以),并且可以非常容易地按需添加更多的进程或更多的计算机。

在这方面,N | Solid的行为与Node.js相同

正如你所提到的,“粘滞会话”是处理这个问题的一种方法。 在Redis实例或其他数据存储上存储和pipe理会话信息,您的进程可以同步,您可以将正确的会话路由到正确的进程。

由于性能方面的原因,集群模块在进程之间不共享内存,因此,最好的方法是使用粘性会话,让平衡器使用会话信息来决定路由。 粘滞会话还使得任何进程都可以从会话存储获取相同的信息。