在Google Cloud中负载平衡websocket连接

时间:2015-12-04 14:29:30

标签: websocket load-balancing google-cloud-platform managed-vm

我遇到了一个问题,我无法使用Google技术完全解决问题。

我需要通过SSL提供> 500个并行websocket连接。理想情况下,客户端连接到wss://wss.mydomain.com并由实例提供服务。

选项1 :我目前使用自定义运行时托管VM来部署运行启用SSL的websocket服务器的Dockerfile。 部署托管VM实例会生成一个GCE实例。 我使用Google Cloud DNS将wss.mydomain.com指向GCE实例的这一个IP地址。

问题:我无法连接到wss.mydomain.com(甚至不是my-mvm.appspot.com),因为websocket连接(通过SSL)无法转发到托管VM实例。提出issue,但没有看到任何有助于我的回复。其他人也会得出这个结论herehere

因此,如果托管虚拟机不是答案,我可以在Google云架构中找到它吗?

选项2 :由于managedVM似乎是GCE的一个绝对涂层,或许我可以保留当前已经提供我的GCE实例的设置并自己添加负载平衡?

选项2a :HTTP(S)负载平衡不允许websocket流量,因此其中一个是out

选项2b :网络负载平衡可行。我需要将实例分配给目标池才能工作。是否可以自动将新创建的托管VM实例分配给目标池,以便他们在负载平衡中加入?如果是这样,这将是问题的完整解决方案吗?

选项3 :我想继续使用我的Dockerfile进行设置。所以我正在看容器引擎。我根本没有经验。

在我涉足另一个雷区之前,哪个选项最有可能解决我的问题?也许我没有想到另一种选择。

1 个答案:

答案 0 :(得分:1)

选项2b也将被淘汰,因为托管VM流量仍然通过appspot.com前端,该前端不会将websocket流量转发到实例(如链接的其他问题中所述)。

如果您想让它立即正常工作,我建议您首先使用带autoscaling的GCE实例和网络负载平衡。如果您希望获得与托管虚拟机相同级别的可伸缩性,那么您可能希望开始阅读Container Engine并部署您的应用程序Dockerized。