Azure Service Fabric - 部署失败,剩余 1 个分区

Kev*_*ith 5 azure-service-fabric

我已经使用 Service Fabric 一段时间了,成功构建、部署和测试了多个服务,但是我刚刚完成构建的服务在部署时失败(请参见下面的错误)。在诊断过程中,我尝试使用 VS 模板(没有代码更改)创建和部署一个全新的服务,但也不会部署 - 同样的错误。不过,计算器 SDK 示例部署得很好。

我收到以下错误,无法构建其中一个分区:

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:,fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Something is taking too long, the application is still not ready.
Finished executing script 'Get-FabricApplicationStatus.ps1'.
Time elapsed: 00:01:48.0681346
The thread 0x37fc has exited with code 0 (0x0).
The thread 0x4fe4 has exited with code 0 (0x0).
Run Code Online (Sandbox Code Playgroud)

了解服务的健康状况可以得出以下结论:

    PS C:\WINDOWS\system32> Get-ServiceFabricServiceHealth -ServiceName fabric:/DataFabricServiceApplication/DataFabricService


    ServiceName           : fabric:/DataFabricServiceApplication/DataFabricService
    AggregatedHealthState : Error
    UnhealthyEvaluations  :
                            Unhealthy partitions: 100% (1/1), MaxPercentUnhealthyPartitionsPerService=0%.

                            Unhealthy partition: PartitionId='3eebd943-097d-4568-ad7e-d37c621a888b', AggregatedHealthState='Error'.

                                Error event: SourceId='System.FM', Property='State'.

    PartitionHealthStates :
                            PartitionId           : 3eebd943-097d-4568-ad7e-d37c621a888b
                            AggregatedHealthState : Error

    HealthEvents          :
                            SourceId              : System.FM
                            Property              : State
                            HealthState           : Ok
                            SequenceNumber        : 10
                            SentAt                : 11/11/2015 07:16:02
                            ReceivedAt            : 11/11/2015 07:16:03
                            TTL                   : Infinite
                            Description           : Service has been created.
                            RemoveWhenExpired     : False
                            IsExpired             : False
                            Transitions           : Warning->Ok = 11/11/2015 07:16:03, LastError = 01/01/0001 00:00:00
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这不会部署/我如何才能了解这一点?我见过其他人也有同样的错误,但没有找到任何解决方案。

小智 2

对服务运行状况的不健康评估会向您显示有问题的分区。您可以继续深入了解该分区的运行状况 ( Get-ServiceFabricPartitionHealth 3eebd943-097d-4568-ad7e-d37c621a888b)。我的猜测是,您会看到一个Error事件System.FM,称分区低于最小副本集大小。

然后您可以深入了解副本的运行状况 ( Get-ServiceFabricReplica 3eebd943-097d-4568-ad7e-d37c621a888b | Get-ServiceFabricReplicaHealth)。我见过很多因副本无法打开而发生这种情况的情况(由于配置问题或服务副本代码中的错误)。如果是这种情况,您将在副本上看到一个事件,说明它出了什么问题(例如,打开需要很长时间或打开失败并出现错误代码等),或者副本将继续回收。