node.js - 服务器发送事件或 Websockets 的 Aws 负载均衡器

标签 node.js amazon-web-services websocket server-sent-events aws-load-balancer

我正在尝试对 nodejs Server 发送的事件后端进行负载平衡,我需要知道是否有办法将新连接分配给连接最少的客户端的实例。我遇到的问题是在向上扩展时,路由会继续向已经饱和的实例发送新连接,并且由于连接存在很长时间,所以这根本行不通。

水平扩展长期连接有哪些选项?

最佳答案

您似乎想要一个既能提供“粘性 session ”又能使用“最少连接”而不是“循环”策略的负载均衡器。不幸的是,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

如果您需要 ELB 功能并希望手动滚动,请查看此 guide .

您可能还想确保经典 AWS ELB“粘性 session ”configuration或更新的 ALB "sticky session"选项不能满足您的需求。 ELB 通常以最少的“负载”将连接发送到上游服务器,当与粘性 session 结合使用时可能就足够了。

关于node.js - 服务器发送事件或 Websockets 的 Aws 负载均衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54427980/

相关文章:

Java-WebSocket - 从服务器获取客户端证书进行身份验证

ssl - WebSockets 和 HTTPS 负载平衡器

javascript - 在 Node+Express 中,如何为各个路由设置 CORS?

node.js - 并且偶尔会在 shell 和 Node native 驱动程序上产生错误的结果

node.js - 在 Node.js/express 中浏览静态文件目录树

rest - 使用 AWS S3 REST API 在不知道存储桶区域的情况下检索存储桶的对象

python - 无法连接到 websocket API

node.js - 如何从 NodeJS 将 session 存储在 MongoDB 中?

python - django-zappa : Error loading psycopg2 module: libpq. so.5:无法打开共享对象文件:没有这样的文件或目录

javascript - AWS dynamodb 使用 "on-demand"ProvisionedThroughput 创建表