ServiceProxy.Create要求主要返回辅助副本而不是

时间:2017-03-12 14:20:16

标签: azure-service-fabric service-fabric-stateful service-fabric-actor

我正在使用来自不同actor类型的远程访问服务。他们通过基类中的共享代码执行此操作,调用ServiceProxy.Create方法。

我有用于访问主副本和副副本的用例,并使用指定TargetReplicaSelector的方法重载。这通常很好。

在升级服务之后(不更改代码,只测试运行时升级如何影响通信),一些actor(总是相同的类型!)获得对辅助副本的引用< / strong>调用ServiceProxy.Create时,即使我特意要求使用TargetReplicaSelector.PrimaryReplica参数的副本。 其他演员类型继续按原样获得主要类型。

这怎么可能?

编辑1:我知道在升级过程中,主服务器将成为辅助服务器,并且任何辅助服务器都将成为主服务器。我可以在升级过程中在资源管理器中看到这一点。

所以看起来ServiceProxy.Create--从一些actor类型调用时 - 是保留一些关于哪个副本是主要的陈旧信息? 我虽然ServiceProxy会自动检测到这些变化? 这是一个错误还是我做错了什么?

编辑2:我发现此评论为this service remoting doc page

  

Yongjun 2016年12月7日如何处置/断开远程服务,

     

在我们的产品中,在有状态服务A中,它将连接到另一个   有状态服务B通过ServiceProxy.Create

     

但是在服务A切换之后,它仍然有连接   服务B使用“netstat -ano”,如果服务A切换到主服务器   再次,它将与服务B有两个连接

似乎是同样的问题。

问题:如何避免此问题?

0 个答案:

没有答案