Azure service fabric 如何从服务结构运行时重新启动/回收基础VM

Azure service fabric 如何从服务结构运行时重新启动/回收基础VM,azure-service-fabric,Azure Service Fabric,当应用程序处于不良状态时,我希望实现以下恢复尝试: 重新启动应用程序本身 重新启动基础VM 重建底层虚拟机 有了云服务,就可以调用Environment.FailFast,并自动触发上述序列 如何使用服务结构实现同样的效果?目前,它被用作VM规模集顶部的部署/维护层(每个VM一个应用程序实例) 更新:无法使用服务结构执行此操作。对于我们的服务,我们决定直接在VM规模集上构建它。希望我们也能看到云服务v2构建在VM规模集之上,它将负责部署/维护。服务结构有一个内置机制来重新启动失败的应用程序,但服

当应用程序处于不良状态时,我希望实现以下恢复尝试:

  • 重新启动应用程序本身
  • 重新启动基础VM
  • 重建底层虚拟机
  • 有了云服务,就可以调用Environment.FailFast,并自动触发上述序列

    如何使用服务结构实现同样的效果?目前,它被用作VM规模集顶部的部署/维护层(每个VM一个应用程序实例)


    更新:无法使用服务结构执行此操作。对于我们的服务,我们决定直接在VM规模集上构建它。希望我们也能看到云服务v2构建在VM规模集之上,它将负责部署/维护。

    服务结构有一个内置机制来重新启动失败的应用程序,但服务结构不了解什么是“坏状态”。如果应用程序失败,进程关闭,SF将重新启动它几次,直到它放弃,并认为应用程序被破坏和块重新启动。

    如果它偶尔发生,例如,一周几次,它就不会有任何问题,因为它有一个阈值,考虑到它的连续故障的一部分,同样的问题。 当您说坏状态时,每个应用程序可能有不同的坏状态概念,因此,除非应用程序通过运行状况事件报告,否则无法识别它

    例如:

    • 应用程序可能消耗了太多内存(内存泄漏)。您唯一能做的就是限制应用程序内存设置限制,SF不知道这是一个泄漏,可能是应用程序设计中的内存消耗部分
    • 另一个问题是,由于配置无效或依赖服务关闭,API返回错误响应。如果错误是由于应用程序故障或服务设计引起的,则服务结构不会打结
    在这些情况下,您必须实现一种机制,告诉SF这些错误不是预期的,SF将为您处理故障转移。您可以将其实现为:

    • 作为应用程序的一部分,它将发出自己的运行状况报告
    • 在群集中运行的看门狗应用程序监视服务事件或日志,并代表其他服务发出事件
    对于第一种方法,报告发生故障的快速方法是使用:

    使复制副本能够向运行时报告故障,并指示 它遇到了无法恢复的错误,必须 可以重新启动或删除

    有关其他健康报告的更多信息,请参阅本文档:

    关于你问题的第2项和第3项, 有一种机制可以识别当集群中的节点不可用时,它会降级,SF会暂时将其从环中删除。常见的问题是,当网络问题阻止节点相互通信时,在某些情况下,内存不足可能会影响SF主机管理器,并且它开始出现故障,响应缓慢,然后SF将从可用节点列表中删除节点,直到恢复正常

    我不知道SF中有什么东西会重新启动VM,可能是因为前面提到的相同原因,它会在SF Explorer中引发故障以通知问题,您将不得不处理它


    您可以将解决方案作为上述watchdog方法的一部分,在该方法中,您可以从节点移动任何正常的服务,然后您可以使用重新启动底层VM

    服务结构有一个内置机制来重新启动失败的应用程序,但服务结构不了解什么是“坏状态”。如果应用程序失败,进程关闭,SF将重新启动它几次,直到它放弃,并认为应用程序被破坏和块重新启动。

    如果它偶尔发生,例如,一周几次,它就不会有任何问题,因为它有一个阈值,考虑到它的连续故障的一部分,同样的问题。 当您说坏状态时,每个应用程序可能有不同的坏状态概念,因此,除非应用程序通过运行状况事件报告,否则无法识别它

    例如:

    • 应用程序可能消耗了太多内存(内存泄漏)。您唯一能做的就是限制应用程序内存设置限制,SF不知道这是一个泄漏,可能是应用程序设计中的内存消耗部分
    • 另一个问题是,由于配置无效或依赖服务关闭,API返回错误响应。如果错误是由于应用程序故障或服务设计引起的,则服务结构不会打结
    在这些情况下,您必须实现一种机制,告诉SF这些错误不是预期的,SF将为您处理故障转移。您可以将其实现为:

    • 作为应用程序的一部分,它将发出自己的运行状况报告
    • 在群集中运行的看门狗应用程序监视服务事件或日志,并代表其他服务发出事件
    对于第一种方法,报告发生故障的快速方法是使用:

    使复制副本能够向运行时报告故障,并指示 它遇到了无法恢复的错误,必须 可以重新启动或删除

    有关其他健康报告的更多信息,请参阅本文档:

    关于你问题的第2项和第3项, 有一种机制可以识别当集群中的节点不可用时,它会降级,SF会暂时将其从环中删除。常见问题是当网络问题阻止节点彼此通信时,在某些情况下,内存不足可能会导致