gcloud socketIO 不适用于多实例

gcloud socketIO is not working on multi-instances

我正在使用带有托管虚拟机的 gcloud 应用引擎上的 socketIO + Nodejs。 我遇到一个问题,当我使用手动缩放时,gcloud 与套接字配合得很好。

但是当我使用动态缩放时,套接字根本不起作用,我认为它不起作用是因为两个实例的端口转发问题! 这是我的 app.yaml 个有效处理实例。

 manual_scaling:
  instances: 1

 resources:
  cpu: 0.1
  memory_gb: 0.1
  disk_size_gb: 10

当我移除它们时,套接字根本不起作用。 是否有任何建议或解决方法。 因为我要处理大量的套接字请求 (2 million/day)。 如果找不到解决方法。我应该为一个实例使用什么规格来处理所有这些请求,或者我如何计算它们?

谢谢。

Google Cloud 本身不支持负载平衡的 Web 套接字。您可以使用几个选项来解决该问题。

一种选择是将 websocket 流量直接路由到 VM 实例,而不是通过云负载均衡器。您可以在此处查看执行此操作的示例:

https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/appengine/websockets

这会奏效,但您应该了解缺点:

  • 它本身不支持 HTTPS
  • 托管 VM 中的 VM 实例每周一次被回收,导致连接断开。

另一种选择是使用第 3 方服务,如 pubnub 或 pusher:

祝你好运!