gpt4 book ai didi

azure - 是否需要调整服务结构负载均衡器?

转载 作者:行者123 更新时间:2023-12-03 05:47:38 26 4
gpt4 key购买 nike

有关服务结构的大多数示例表明,部署后,集群端点会神奇地出现,就像服务 list eg: <cluster-url>:port/api/home 中给出的那样。

论坛上的一些人提到调整负载平衡器以允许访问端口。

为什么会有不同的意见?哪种方式是正确的?当我尝试时,我永远无法访问 azure 集群中部署的 api/端点(负载均衡器是否已调整)。不过 OneBox 确实有效。

最佳答案

大多数人在构建 SF 应用程序时忘记的主要细节是,他们正在构建分布式应用程序,当您在集群中部署一个服务时,您需要一种方法来找到它,并且在某些情况下它可以在集群中移动,因此解决方案必须能够反射(reflect)这些分布。

它在本地工作,因为您有一个端点(localhost(127.0.0.1)>服务),并且您总能在那里找到您的应用程序。

在 SF 上,您访问的域将映射到负载均衡器,该负载均衡器将映射到一组计算机,其中一台计算机可能会在其上运行您的应用程序(域 > LB IP > 节点 > 服务)。

您需要了解的第一件事是:

  • 你的服务可能不会在负载均衡器后面的所有节点(机器)上运行,当负载均衡器向该节点发送请求时,如果失败,LB不会在另一个节点上重试,而是转发这些请求向随机节点发出请求,并且在大多数情况下,它会将打开的连接保持到同一台机器。如果您需要在所有节点上运行服务,请将实例计数设置为 -1,您只需打开 LB 上的端口就可以看到它正在工作。

  • 每个 NodeType 前面都有一个负载均衡器,因此,请始终对服务设置放置约束,以避免它在未外部公开的其他 NodeType 上启动

  • 您的应用程序打开的每个端口都是在节点上打开的,如果您需要外部访问,则必须在 LoadBalancer 中手动打开,或者通过脚本打开,SF 分配给您的服务的端口意味着SF内部进行管理,避免同一节点上运行的服务之间发生端口冲突,SF不会开放LB中的端口供外部访问。

公开这些服务的方法有很多,您也可以尝试:

  • 使用反向代理,例如 bulti-in这将代理对集群中的服务的调用,无论它们位于何处。
  • 使用NGINX作为API网关或反向代理,并将其配置为仅调用特定服务,在这种情况下您需要向其提供服务地址,因此在服务启动或停止时需要刷新列表。
  • 使用Azure API Management公开 SF 上托管的 API

关于azure - 是否需要调整服务结构负载均衡器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52155210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com