Service Fabric ServicePartitionResolver ResolveAsync

Aid*_*son 2 azure-service-fabric

我目前正在使用ServicePartitionResolver来获取群集中另一个应用程序的http端点.

var resolver = ServicePartitionResolver.GetDefault();
var partition = await resolver.ResolveAsync(serviceUri, partitionKey ?? ServicePartitionKey.Singleton, CancellationToken.None);
var endpoints = JObject.Parse(partition.GetEndpoint().Address)["Endpoints"];
return endpoints[endpointName].ToString().TrimEnd('/');
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作,但是如果我在我的本地开发框中重新部署目标应用程序及其端口更改,源应用程序仍会返回旧端点(现在无效).我可以清楚某个地方有缓存吗?或者这是一个错误?

小智 6

是的,它们是缓存的.如果您知道该分区不再有效,或者您收到错误,则可以调用resolver.ResolveAsync()具有更早的重载ResolvedServicePartition previousRsp,从而触发刷新.

此api-overload用于客户端知道已解析的服务分区不再有效的情况.

也看到这篇文章.