【问题标题】:"Partition is below target replica or instance count" error after deploying service fabric application to public service fabric cluster将服务结构应用程序部署到公共服务结构集群后出现“分区低于目标副本或实例计数”错误
【发布时间】:2016-04-25 20:17:54
【问题描述】:

我创建了一个服务结构无状态可靠服务,在其中我使用 OWIN 来托管一个 Web API。当我将应用程序部署到本地集群时,它运行良好,我可以调用 API。

当我将应用程序部署到公共集群时,部署成功完成,但是当我使用 Service Fabric Explorer 检查集群时,

副本似乎处于“构建中”状态一段时间, 然后它移动到“警告”状态,最后结构浏览器中的整个树变红了,分区下不再存在副本。 并显示健康状态为错误。 显示错误“分区低于目标副本或实例计数”。

我还使用了允许的端口来创建 OWIN Web 服务器。

当我在本地集群中部署应用程序时不会发生这种情况。 Service Fabric Explorer Screenshot for public cluster , Service Fabric Explorer Screenshot for Local Cluster

【问题讨论】:

    标签: azure-service-fabric


    【解决方案1】:

    大多数情况下,此错误实际上只是意味着“我们无法启动您的服务”。如果您的服务中存在未处理的异常导致其无法启动,您可以在 Service Fabric Explorer 中深入了解您的服务实例或副本,以在多次尝试后无法启动时查看堆栈跟踪。

    顺便说一句,我建议使用更新的基于 Web 的 Service Fabric Explorer。只需将 Web 浏览器指向集群上的 19080 端口:例如,http://mycluster.eastus.cloudapp.azure.com:19080/Explorer/index.htm

    【讨论】:

    • 当我从 Visual Studio 调试解决方案时,我在输出窗口中看到了一个聚合异常。但仍然在本地集群中工作。所以我将所有代码移到了一个新的解决方案中,然后它在公共集群中工作。
    • 问题是,我更新了 Servcie 结构的 nuget 包,公共集群不支持新版本,我改回了 nuget 版本,它工作正常。
    【解决方案2】:

    只是我的一点评论..在解决此错误数小时后,问题出在我的C:\ 驱动器上的磁盘空间不足。将可用空间从大约 3GB 增加到 8GB 后,错误消失了。

    如此处所述:https://github.com/Azure/service-fabric-issues/issues/15

    今天的默认安装需要大约 10Gb 的磁盘空间

    【讨论】:

    • 我猜微软将 8GB 称为“今天大约 10Gb 的磁盘空间”;-)
    • 我有同样的问题,我找不到任何迹象表明是什么导致了问题,释放磁盘空间后它运行良好
    【解决方案3】:

    我遇到了这个问题,这是一个配置错误。

    19080端口的Service Fabric explorer报错:

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

    分区低于目标副本或实例计数。 结构:/MyApp/MyService 3 2 [partitionid] N/P RD _Node_0 Up [长数字] (显示 1 个副本中的 1 个。可用副本总数:1。)

    在我的 ApplicationManifest.xml 我有:

      <Service Name="MyService">
      <StatefulService ServiceTypeName="MyServiceType" TargetReplicaSetSize=**"3"** MinReplicaSetSize=**"2"**>
        <SingletonPartition />
      </StatefulService>
    </Service>
    

    将 MinReplicaSetSize 减少到 1 并将 TargetReplicaSetSize 减少到 1 并重新发布解决了我的问题。

    Classic Eye-Dee-Ten-Tee (ID10T) 配置问题:-D

    【讨论】:

      【解决方案4】:

      我正在使用 Azure Service Fabric 部署我的应用程序并收到此错误。

      经过调查,发现是因为“TargetReplicaSetSize”和“MinReplicaSetSize”超过了我的节点数。

      为解决问题,将ApplicationParameters/cloud.xml中的“PartitionCount”、“TargetReplicaSetSize”、“MinReplicaSetSize”改为1,然后重新部署应用:

          <?xml version="1.0" encoding="utf-8"?>
          <Application xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="fabric:/Voting" xmlns="http://schemas.microsoft.com/2011/01/fabric">
          <Parameters>
              <Parameter Name="xxx_PartitionCount" Value="1" />
              <Parameter Name="xxx_MinReplicaSetSize" Value="1" />
          </Parameters>
          </Application>
      

      【讨论】:

        【解决方案5】:

        另一个原因是,如果您创建了无状态服务(检查 ApplicationPackageRoot/ApplicationManifest.xml),但该服务实现了有状态服务。

        【讨论】:

          【解决方案6】:

          我刚刚收到相同的错误消息。原来我的容器还没有建成。过了几分钟,然后状态变为 OK。

          【讨论】:

            【解决方案7】:

            我今天遇到了同样的问题,除了其他答案提到的可能原因之外,另一个可能的原因是您使用的是旧版本的 SF runtime/SDK/library。

            请确保您的项目中的 SF 运行时、SDK 和引用的 DLL 是最新的!

            【讨论】:

              猜你喜欢
              • 2019-05-16
              • 2018-09-21
              • 2019-10-31
              • 2019-04-17
              • 2017-11-08
              • 2016-12-16
              • 2016-06-05
              • 2021-10-13
              • 1970-01-01
              相关资源
              最近更新 更多