【问题标题】:Default values of OperationRetrySettings for default communication proxy默认通信代理的 OperationRetrySettings 的默认值
【发布时间】:2016-07-18 15:21:45
【问题描述】:

当我像这样为我的服务创建代理时:

ServiceProxy.Create<IMyService>(new Uri("fabric:/MyApplication/MyService"));
  1. OperationRetrySettings 实例将具有哪些值?
  2. 默认的 TryHandleException 实现会有什么逻辑吗?
  3. 在上述代码的情况下,是否会涉及与异常情况下重试相关的任何逻辑?
  4. 有没有办法在异常逻辑的情况下调整重试,更改默认 OperationRetrySettings 的值?

我使用 FabricTransportServiceRemotingListener。

【问题讨论】:

  • 也许有人可以纠正我的答案或提供更准确的信息。

标签: azure-service-fabric


【解决方案1】:

根据我的观察,肯定没有完全涵盖所有问题,因为没有太多信息:

  1. 一些默认值。在每个退避间隔上至少DefaultMaxRetryCount 是 10 和 2 秒。我通过实例化FabricTransportServiceRemotingClientFactory 并传递自定义IExceptionHandler 找到了这些值。如果您使用默认的ServiceProxyFactoryServiceProxy,这个属性可能甚至没有任何意义。
  2. 看起来是的。我没有找到在代理和工厂中使用的确切默认IExceptionHandler,但注意到如果我在服务中抛出TimeoutException 异常,会进行多次重试。可能默认使用ActorRemotingExceptionHandlerServiceRemotingExceptionHandler的逻辑。
  3. 是的。
  4. 是的。您需要实例化ServiceProxyFactoryActorProxyFactory,在那里传递IServiceRemotingClientFactory 实现(例如,FabricTransportServiceRemotingClientFactory),指定OperationRetrySettingsIExceptionHandler,作为异常处理程序传递您自己的实现。

【讨论】:

    【解决方案2】:

    ServiceProxy.Create 使用默认的 ServiceProxyFactory。

    它是使用此处记录的默认 OperationRetrySettings 创建的: https://msdn.microsoft.com/en-us/library/mt711955.aspx

    默认的ServiceProxyFactory也使用默认的服务移除客户端工厂; FabricTransportServiceRemotingClientFactory。

    https://msdn.microsoft.com/en-us/library/microsoft.servicefabric.services.remoting.fabrictransport.client.fabrictransportserviceremotingclientfactory.fabrictransportserviceremotingclientfactory.aspx

    按照本文档的注释,您可以看到它使用了此处描述的 ServiceRemotingExeptionHandler:

    https://msdn.microsoft.com/en-us/library/microsoft.servicefabric.services.remoting.client.serviceremotingexceptionhandler.aspx

    【讨论】:

    • 只是一个小提示:我注意到如果我抛出一个TimeoutException,那么该方法会被再次调用超过 10 次。这就是我怀疑默认OperationRetrySettings的原因。
    • 服务实现代码是否抛出超时异常,SDK的版本是多少?
    • 是的,我正在从无状态服务中抛出异常。当我调用异常方法时,我会输入一次,然后再输入 11 次。 SDK 2.1.150。
    猜你喜欢
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2015-05-22
    • 2019-07-05
    • 2013-02-13
    相关资源
    最近更新 更多