Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure service fabric 默认通信代理的OperationRetrySettings的默认值_Azure Service Fabric - Fatal编程技术网

Azure service fabric 默认通信代理的OperationRetrySettings的默认值

Azure service fabric 默认通信代理的OperationRetrySettings的默认值,azure-service-fabric,Azure Service Fabric,当我为我的服务创建代理时,如下所示: ServiceProxy.Create<IMyService>(new Uri("fabric:/MyApplication/MyService")); ServiceProxy.Create(新Uri(“fabric:/MyApplication/MyService”); OperationRetrySettings实例将具有哪些值 默认TryHandleException实现中是否有任何逻辑 在出现异常的情况下,是否会涉及任何与重试相关的

当我为我的服务创建代理时,如下所示:

ServiceProxy.Create<IMyService>(new Uri("fabric:/MyApplication/MyService"));
ServiceProxy.Create(新Uri(“fabric:/MyApplication/MyService”);
  • OperationRetrySettings实例将具有哪些值
  • 默认TryHandleException实现中是否有任何逻辑
  • 在出现异常的情况下,是否会涉及任何与重试相关的逻辑
  • 是否有方法在出现异常逻辑时调整重试,更改默认操作RetrySettings的值

  • 我使用FabricTransportServiceRemotingListener。

    基于我的观察,我的观察肯定不能完全涵盖所有问题,因为没有太多信息:

  • 一些默认值。在每个退避间隔上,DefaultMaxRetryCount至少为10秒和2秒。我通过实例化
    FabrictTransportServiceRemotingClientFactory
    并传递自定义
    IEExceptionHandler
    找到这些值。如果您使用的是默认的
    ServiceProxyFactory
    ServiceProxy
    ,则此属性可能没有任何意义
  • 看起来是的。我没有找到在代理和工厂中使用的确切默认值
    IExceptionHandler
    ,但注意到如果我在服务中抛出
    TimeoutException
    异常,会多次重试。默认情况下,可能会使用
    ActorRemotingExceptionHandler
    ServiceRemotingExceptionHandler
    的逻辑
  • 对。您需要实例化
    ServiceProxyFactory
    ActorProxyFactory
    ,在那里传递
    IServiceRemotingClientFactory
    实现(例如,
    FabrictTransportServiceRemotingClientFactory
    ),指定
    OperationRetrySettings
    IEExceptionHandler
    ,作为异常处理程序传递您自己的实现

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

  • 一些默认值。在每个退避间隔上,DefaultMaxRetryCount至少为10秒和2秒。我通过实例化
    FabrictTransportServiceRemotingClientFactory
    并传递自定义
    IEExceptionHandler
    找到这些值。如果您使用的是默认的
    ServiceProxyFactory
    ServiceProxy
    ,则此属性可能没有任何意义
  • 看起来是的。我没有找到在代理和工厂中使用的确切默认值
    IExceptionHandler
    ,但注意到如果我在服务中抛出
    TimeoutException
    异常,会多次重试。默认情况下,可能会使用
    ActorRemotingExceptionHandler
    ServiceRemotingExceptionHandler
    的逻辑
  • 对。您需要实例化
    ServiceProxyFactory
    ActorProxyFactory
    ,在那里传递
    IServiceRemotingClientFactory
    实现(例如,
    FabrictTransportServiceRemotingClientFactory
    ),指定
    OperationRetrySettings
    IEExceptionHandler
    ,作为异常处理程序传递您自己的实现

  • ServiceProxy.Create使用默认ServiceProxyFactory

    它是使用默认OperationRetrySettings创建的,这些设置记录在此处:

    默认ServiceProxyFactory还使用默认的服务删除客户端工厂;FabrictTransportServiceRemotingClientFactory

    在本文档的注释之后,您可以看到它使用了ServiceRemotingExceptionHandler,如下所述:


    ServiceProxy.Create使用默认ServiceProxyFactory

    它是使用默认OperationRetrySettings创建的,这些设置记录在此处:

    默认ServiceProxyFactory还使用默认的服务删除客户端工厂;FabrictTransportServiceRemotingClientFactory

    在本文档的注释之后,您可以看到它使用了ServiceRemotingExceptionHandler,如下所述:


    也许有人可以更正我的答案或提供更精确的信息。也许有人可以更正我的答案或提供更精确的信息。只是一个小提示:我注意到,如果我抛出一个
    TimeoutException
    ,那么该方法会被再次调用10次以上。这就是我怀疑default
    OperationRetrySettings
    的原因。您是否从服务实现代码中引发超时异常,SDK的版本是什么?是的,我是从无状态服务中引发异常。当我调用带有异常的方法时,我将输入它一次,然后再输入11次。SDK 2.1.150。只是一个小提示:我注意到,如果我抛出一个
    TimeoutException
    ,那么该方法将被再次调用10次以上。这就是我怀疑default
    OperationRetrySettings
    的原因。您是否从服务实现代码中引发超时异常,SDK的版本是什么?是的,我是从无状态服务中引发异常。当我调用带有异常的方法时,我将输入它一次,然后再输入11次。SDK 2.1.150。