gpt4 book ai didi

azure-service-fabric - 删除 Service Fabric 应用程序失败

转载 作者:行者123 更新时间:2023-12-04 08:04:22 24 4
gpt4 key购买 nike

我已将应用程序部署到 5 节点独立集群。成功部署成功。但是由于应用程序中的一些错误,应用程序没有启动。
我尝试使用 Service Fabric Explorer 从集群中删除应用程序,但失败了。

应用程序的健康状态为“错误”,状态为“正在删除”
该应用程序有 9 个服务。 6 个服务显示带有问号的健康状态“未知”和状态“未知”。 3 个服务显示健康状态“正常”,但状态为“正在删除”。

我也尝试使用 powershell 删除它:

Remove-ServiceFabricApplication -ApplicationName fabric:/appname -Force -ForceRemove

结果是操作超时。

我还尝试了在其他帖子中找到的以下脚本。
Connect-ServiceFabricCluster -ConnectionEndpoint localhost:19000

$nodes = Get-ServiceFabricNode

foreach($node in $nodes)
{
$replicas = Get-ServiceFabricDeployedReplica -NodeName $node.NodeName - ApplicationName "fabric:/MyApp"

foreach ($replica in $replicas)
{
Remove-ServiceFabricReplica -ForceRemove -NodeName $node.NodeName -PartitionId $replica.Partitionid -ReplicaOrInstanceId $replica.ReplicaOrInstanceId
}
}

也没有结果,脚本没有找到要删除的任何副本。

同时我们开始移除应用程序之一,系统服务也改变了状态。
fabric:/System/NamingService 服务显示“警告”健康状态。
这是在分区 00000000-0000-0000-0000-000000001002 上。
主要副本显示:
不健康事件:SourceId='System.NamingService'、Property='Duration_PrimaryRecovery'、HealthState='Warning'、ConsumeWarningAsError=false。
于 2016-10-06 07:55:21.252 开始的 PrimaryRecovery 花费的时间超过 30:00.000。

我还重新启动了每个节点(当时是 1 个)但没有结果。

如何在不重新创建集群的情况下强制删除应用程序,因为这不是生产环境的选项。

最佳答案

是的,如果您不允许代码退出 ICommunicationListener 的 RunAsync 或 Open/Close,就会发生这种情况。

一些背景:

您的服务具有由 Service Fabric 驱动的生命周期。您的服务中的一个小组件 - 您将其称为 FabricRuntime - 驱动它。对于无状态服务实例,它是一个简单的打开/关闭生命周期。对于有状态服务,它有点复杂。有状态服务副本打开和关闭,但也会在主要、次要和无之间更改角色。生命周期更改由 Service Fabric 启动,并在代码中显示为方法调用或取消 token 触发器。例如,当副本切换到主副本时,我们会调用您的 RunAsync 方法。当它从主要切换到其他东西或需要关闭时,会触发取消 token 。无论哪种方式,系统都会等待您完成工作。

当您删除服务时,我们会告诉您的服务更改角色并关闭。如果您的代码没有响应,那么它将卡在该状态。

要摆脱这种状态,您可以运行 Remove-ServiceFabricReplica -ForceRemove .这实际上从系统中删除了副本 - 就 Service Fabric 而言,副本已经消失。但是您的进程仍在运行。因此,您也必须进入并终止该进程。

关于azure-service-fabric - 删除 Service Fabric 应用程序失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39892462/

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