服务器已发送事件或Websockets的Aws负载均衡器

aja*_*xon 8 amazon-web-services websocket node.js server-sent-events aws-load-balancer

我正在尝试对nodejs服务器发送的事件后端进行负载均衡,我需要知道是否有办法将新连接分发给连接最少的客户端的实例.我遇到的问题是在扩展时,路由继续向已经饱和的实例发送新连接,并且因为连接很长时间,所以这根本不起作用.

对于水平扩展长期连接,我有哪些选项?

ada*_*hts 1

看起来您想要一个既可以提供“粘性会话”又可以使用“最少连接”而不是“循环”策略的负载均衡器。不幸的是,NGINX 无法提供这一点。

HAProxy(高可用性代理)允许这样做:

backend bk_myapp
 cookie MyAPP insert indirect nocache
 balance leastconn
 server srv1 10.0.0.1:80 check cookie srv1
 server srv2 10.0.0.2:80 check cookie srv2
Run Code Online (Sandbox Code Playgroud)

如果您需要 ELB 功能并希望手动全部滚动,请查看本指南

您可能还想确保经典的 AWS ELB“粘性会话”配置或较新的ALB“粘性会话”选项不能满足您的需求。ELB 通常以最少的“负载”向上游服务器发送连接,并且与粘性会话结合使用时可能就足够了。