当有一堆充当WebSocket无人机和负载均衡器的系统出现在无人机前面时。当WebSocket请求进入LB时,它选择一个WebSocket无人机,并建立WebSocket。(我使用AWS ELB tcp SSL-终止于ELB)
问题:现在创建的WebSocket是否通过LB,还是LB将WebSocket请求转发给WebSocket无人机,从而在客户端和WebSocket无人机之间存在直接联系?
如果WebSocket连接通过LB,这将使LB成为一个巨大的瓶颈。
删除LB并向客户提供WebSocket无人机的直接IP可以绕过这一瓶颈,但需要自己创建这个逻辑,我计划这样做(取决于这些问题的答案)。
那么,我对如何工作的想法是正确的吗?
发布于 2013-08-19 15:58:16
AWS ELB作为LB
在查看了possible duplicate建议的Pavel K之后,我得出结论认为,WebSocket连接将通过AWS,如下所示:
Browser <--WebSocket--> LB <--WebSocket--> WebSocketServer这使ELB成为一个瓶颈,我想要的是:
Browser <--WebSocket--> WebSocketServer其中,ELB仅用于为客户端提供可用WebSocketServer的主机名/IP。
DNS为LB
可以通过在DNS级别上进行平衡来解决上述问题,正如possible duplicate中所解释的那样.因为这样,当请求WebSocketServer时,DNS将给出可用ws.myapp.com的IP。
缺点是,这将需要不断更新WebSocketServer的上下变化(如果您的应用程序是弹性的,这将成为一个更大的问题)。
自定义LB
另一种选择可以是创建一个自定义LB,它不断监视WebSocketServers,并在客户端请求时返回可用WebSocketServer的IP。
缺点是客户端需要执行单独的(AJAX)请求才能获得可用WebSocketServer的IP,而对于AWS,负载平衡则是隐式的。
结论
选择更好的邪恶..。
https://stackoverflow.com/questions/18301978
复制相似问题