的 AWS ELB作为LB. 强>
看了之后 可能重复 建议来自 帕维尔K. 我得出结论,WebSocket连接将通过AWS ELB,如下所示:
Browser <--WebSocket--> LB <--WebSocket--> WebSocketServer
这使得ELB成为瓶颈 ,我想要的是:
Browser <--WebSocket--> WebSocketServer
ELB仅用于向客户端提供可用WebSocketServer的主机名/ IP。
的 DNS为LB 强>
如上所述,可以通过在DNS级别上进行平衡来规避上述问题 可能重复 。从那时起,当请求ws.myapp.com时,DNS将提供可用WebSocketServer的IP。
缺点是,这需要不断更新DNS,同时上下WebSocketServer更改(如果您的应用程序具有弹性,这将成为一个更大的问题)。
的 自定义LB. 强>
另一个选择可能是创建一个自定义LB,它持续监视WebSocketServers并在客户端请求时返回可用WebSocketServer的IP。
缺点是客户端需要执行单独的(AJAX)请求以获取可用WebSocketServer的IP,而使用AWS ELB时,负载平衡会隐式发生。
的 结论 强>
选择更好的邪恶..