【问题标题】:azure load balancer, how it gets to know if an application in a load balanced VM is down?天蓝色负载均衡器,它如何知道负载均衡虚拟机中的应用程序是否已关闭?
【发布时间】:2019-09-11 13:56:18
【问题描述】:

Azure 负载均衡器如何知道部署在负载均衡 VM 中的应用程序(spring MVC 应用程序)是否关闭?是通过 ping url 来实现的吗? VM 可能已启动,但应用程序可能已关闭。您是否必须对应用程序进行任何更改 - 实现回显服务?如果说我们定义端口 80、TCP,那么“Health Probes”会有什么好处 - 可以,但应用程序不行。


我已阅读此内容,但仍无法解决这个问题:https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension

【问题讨论】:

  • 回复有用吗?您在回复中有任何问题吗?
  • @Nancy,答案很有帮助,因为它增强了我的理解。但是我的 IT 团队回来评论说 VM 永远不会宕机,他们从未见过 Azure VM 宕机,而且他们不会浪费钱购买另一个 VM,所以我建议在 1 中进行 Tomcat 的垂直集群使用 Nginx 负载均衡器的虚拟机。所以只有 HA,没有扩展 - 他们告诉我的应用程序的当前流量并不能证明购买另一个 VM 是合理的。

标签: azure azure-load-balancer


【解决方案1】:

Azure 负载均衡器提供了与负载均衡规则一起使用的运行状况探测。运行状况探测能否支持协议取决于负载均衡器 SKU。

对于TCP probe,它通过与定义的端口执行三向开放式 TCP 握手来启动连接。 TCP 探测通过四次关闭 TCP 握手来终止连接。

对于HTTP / HTTPS probe,它建立在 TCP 探测的基础上并发出带有指定路径的 HTTP GET。这两个探测器都支持 HTTP GET 的相对路径。当实例在超时期限内响应 HTTP status 200 时,会标记运行状况探测。默认情况下,健康探测每 15 秒尝试检查一次配置的健康探测端口。最小探测间隔为 5 秒。所有间隔的总时长不能超过 120 秒。

TCP、HTTP 和 HTTPS 运行状况探测在以下情况下被认为是健康的,并将角色实例标记为健康:

  • VM 启动后运行状况探测成功一次。
  • 已达到将角色实例标记为健康所需的指定探测次数。

探测行为取决于:

  • 允许将实例标记为启动的成功探测数。
  • 导致实例被标记为关闭的失败探测数。
  • 指定的超时值和间隔值决定了实例是标记为启动还是关闭。

运行状况探测流量直接位于生成运行状况探测的探测服务与客户虚拟机之间。所有负载均衡器运行状况探测都源自 IP 地址 168.63.129.16 作为它们的probe source IP address

总体而言,您可以参考design guidance 在您的场景中设计您的健康探针,应用程序端口和探针端口不需要相同。在某些情况下,可能需要探测端口与您的应用程序提供服务的端口不同。在你的情况下,我认为如果你有一个 TCP 端口 3389 或 SSH 22 到你的后端 VM 探测成功,然后 HTTP 探测失败并使用端口 80,这可能是“VM 可能已启动,但应用程序可能已关闭。 "

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2018-09-08
    • 1970-01-01
    相关资源
    最近更新 更多