在 Nginx、HAProxy 等背后部署和负载平衡深度流是可能的(也是一个好主意)。但有一些事情需要注意:
engine.io、websockets 和粘性会话。
Deepstream 使用engine.io ( socket.io后面的传输层)连接到浏览器。
engine.io 使用了许多不同的传输机制,最值得注意的是长轮询(保持 http 请求打开直到需要发送数据)和 WebSockets。
对于长轮询,来自同一个客户端的所有请求都被路由到同一个 deepstream 服务器至关重要,因此请确保在您的 nginx 上游组中启用粘性/持久会话(只需添加ip_hash 指令)。对于 websocket,转发 http 更新标头很重要。
在您的深层节点之间同步数据/消息
确保您的 deepstream 节点通过缓存和消息总线相互连接。您可以选择缓存和消息传递系统,但最简单的方法是两者都使用Redis。查看“什么是最简单的生产就绪设置?”部分 在https://deepstream.io/tutorials/connectors-and-deployment.html的底部。
来自其他客户端(例如 NodeJS)的 TCP 连接
engine.io 主要用于浏览器客户端,后端进程可以直接通过 TCP 连接。负载平衡 TCP 连接完全可以使用 NginX,但需要在您的配置中使用额外的流组。