服务结构不健康的服务影响其他服务

service fabric unhealthy service affect other services

我正在尝试了解服务结构逻辑以将集群中的节点视为不健康。

我最近部署了一个新版本的应用程序,它在所有节点上有 3 个不健康的工作服务 运行,它们是从队列加载消息的非常轻的服务,但由于它们经常失败,所有其他服务 运行 在同一节点上受到某种原因的影响,因此所有服务都报告为不健康。

我假设此行为是一种服务结构健康监控,认为节点不健康,因为多个服务在同一节点上失败。这样对吗?

SF用什么措施判断一个节点不健康

详细描述了 Service Fabric 的健康模型here。措施总是 "health reports"。 Service Fabric 会自行发出一些运行状况报告,但该模型也是可扩展的,您可以添加自己的。

无论您是添加了任何新的健康报告还是仅依赖于默认情况下系统中存在的内容,您都可以通过具体选择节点来查看为给定节点发出的健康报告在 SFX 中或通过 运行 如下命令:

Get-ServiceFabricNodeHealth -NodeName Node1

正如我们在文档中看到的,节点健康状况主要取决于

  • 针对该特定节点的运行状况报告(例如:节点出现故障)
  • 部署的应用程序失败
  • 特定已部署服务包(通常是 in 中的代码包)的失败

在这些情况下,SF 会尝试尽可能多地获取有关失败内容的信息(退出代码、异常及其堆栈跟踪等),并报告该节点的健康警告或错误。