Service Fabric何时更新可用服务分区端点列表?

时间:2018-02-27 14:37:03

标签: c# service-fabric-stateless azure-service-fabric

我正在开发一个公开端点的服务(让我们称之为ServiceA)。该服务将托管在Service Fabric中,并将在(例如)五个可用节点中的三个上运行。另一项服务(ServiceB)需要能够联系所有三个正在运行的ServiceA实例。为此,我使用ServiceB的ServicePartitionResolver查找(单个)ServiceA服务分区公开的所有端点。这可以正常工作,直到我杀死运行ServiceA的其中一个节点。我希望在其他节点之一上创建另一个ServiceA实例,并更新ServicePartitionResolver.Resolve返回的端点列表以反映更改。但这似乎并没有发生。事实上,即使我直接查询REST API(使用Postman命中:http://[cluster-ip]:19080/Services/ApplicationA~ServiceA/ $ / ResolvePartition?api-version = 6.0)我仍然会看到一个过时的'结果。我也尝试使用FabricClient而不是ServicePartitionResolver来检查它不是我看到的本地缓存结果。

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

我做了一些实验,我想我知道发生了什么。 Service Fabric确实做到了我的预期,但就我而言,我用于测试的集群还不够大。我认为当我删除三个节点中的一个时,命名服务不能再有效地运行,因此结果不一致。如果我使用四节点集群并删除一个,我会得到我期望的结果。