【问题标题】:Should i use a separate load balancer for my api and socket servers, or one with rules? (GCloud)我应该为我的 api 和套接字服务器使用单独的负载均衡器,还是使用带有规则的负载均衡器? (GCloud)
【发布时间】:2018-11-07 01:43:21
【问题描述】:

我整个上午都在寻找这个问题的答案,并尝试了各种设置,但我仍然不确定我是否有正确的答案。 (我是新手,所以很抱歉)

我在 GCloud 上有一个节点应用程序,它有运行 restful api 的服务器,以及运行 socket-io(由 redis 链接)的服务器。 api 通过 redis 和 http 调用(内部)与套接字服务器通信。我使用子域来区分每个(api.* 和 socket.*)

我最初认为这些中的每一个都是一个负载均衡器中的服务,我会使用规则将流量发送到正确的位置。但我读的越多,似乎使用完全独立的平衡器可能更合适,并将服务保存为诸如本地考虑之类的事情。

任何建议将不胜感激。

编辑:

阅读了一堆关于基于内容的负载平衡的资料后,我觉得这是我应该做的。 (例如下面的文档) https://cloud.google.com/compute/docs/load-balancing/http/content-based-example

当我尝试这个时,客户端和套接字之间的流量工作正常,因为我使用主机规则引导流量。但是当我尝试从我的 api 服务器调用套接字服务器(相同的 VPC)时,由于没有主机(尝试使用 IP 但它不起作用),我无法区分它

我已经设法让它与两个单独的负载平衡器一起工作,但这似乎不是谷歌所期望的,我想知道它是否会给我带来麻烦(尤其是当我开始处理 https 时)。

【问题讨论】:

    标签: node.js rest socket.io google-compute-engine load-balancing


    【解决方案1】:

    我想回答这个问题,因为似乎没有人感兴趣,但我警告你这是一个 hack。如果有人发布更好的东西,我会相应地增加它。

    最后,我能找到的通过负载均衡器将调用从 api 引导到套接字的唯一方法是将套接字作为默认值(以前是 api)并让流量跌倒了。

    这并不理想,就好像我必须向另一台我无法做到的服务器进行任何其他内部流量一样,它只会转到套接字服务。这也意味着到我的域的任何杂散流量都会到达套接字服务器。

    现在必须这样做,因为我已经在这方面花费了太多时间。

    【讨论】:

      猜你喜欢
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 2013-10-09
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多