Azure服务总线Java中重试的工作原理

Azure服务总线Java中重试的工作原理,azure,azureservicebus,Azure,Azureservicebus,我是服务总线新手,我对RetryPolicy及其工作原理很好奇,根据文档,对于暂时异常(MessaginExceptans,ServerBusy),重试是自动发生的,默认重试次数是3,但我们可以使用RetryExponential类设置自定义重试策略 我想看看当异常发生时RetryPolicy是否真的尝试连接日志 我如何检查这个,如何复制MessaginExceptions、ServerBusy异常,以便查看日志。我正在使用azure服务总线java sdk 谁能帮我理解这一点。提前感谢Java

我是服务总线新手,我对RetryPolicy及其工作原理很好奇,根据文档,对于暂时异常(MessaginExceptans,ServerBusy),重试是自动发生的,默认重试次数是3,但我们可以使用RetryExponential类设置自定义重试策略

我想看看当异常发生时RetryPolicy是否真的尝试连接日志

我如何检查这个,如何复制MessaginExceptions、ServerBusy异常,以便查看日志。我正在使用azure服务总线java sdk


谁能帮我理解这一点。提前感谢

Java SDK是开源的,在这些文件中查找
retryPolicy
可以显示底层实现如何使用它

例如,当抛出错误时,
CoreMessageSender
的流程如下

  • 当发生错误且为ServiceBusException时,将计划重试-
  • 等待后,它会确保链接仍然打开,并增加重试次数-
  • 这将继续,并在成功完成后重置计数-
  • 至于日志记录,JavaSDK使用,您可以在代码中看到这样一行所需的日志

    import org.apache.log4j.Level;
    导入org.apache.log4j.Logger;
    Logger.getLogger(“com.microsoft.azure.servicebus”).setLevel(Level.WARN);
    
    Java SDK是开源的,在这些文件中查找
    retryPolicy
    可以显示底层实现如何使用它

    例如,当抛出错误时,
    CoreMessageSender
    的流程如下

  • 当发生错误且为ServiceBusException时,将计划重试-
  • 等待后,它会确保链接仍然打开,并增加重试次数-
  • 这将继续,并在成功完成后重置计数-
  • 至于日志记录,JavaSDK使用,您可以在代码中看到这样一行所需的日志

    import org.apache.log4j.Level;
    导入org.apache.log4j.Logger;
    Logger.getLogger(“com.microsoft.azure.servicebus”).setLevel(Level.WARN);
    
    谢谢Pramod,我可以从我的客户端代码显式抛出ServiceBusException来查看这一点吗。请确认您的客户端异常不会触发此重试策略。只有从底层传输层抛出的异常才会触发此操作。您可能可以尝试模拟网络问题来触发此功能。如果您正在运行容器,您可以尝试使用类似于Thank Pramod、Cany I显式从客户端代码中抛出ServiceBusException的内容来查看此内容。如果您的客户端异常不会触发此重试策略,请确认。只有从底层传输层抛出的异常才会触发此操作。您可能可以尝试模拟网络问题来触发此功能。如果您正在运行容器,可以尝试使用