微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Java Google Cloud Storage:处理重试次数和延迟

如何解决Spring Java Google Cloud Storage:处理重试次数和延迟

我想知道是否可以在 Java 代码级 GCS 上处理重试次数和应用于它们的延迟。

我知道根据文档,可以在 .boto 配置文件的“[Boto]”部分修改 num_retriesmax_retry_delay 变量(如此处所述https://cloud.google.com/storage/docs/gsutil/addlhelp/RetryHandlingStrategy) .

但我想在 Java 代码级别或 Spring Config 上实现相同的目标。甚至有可能吗?

解决方法

您可以使用名为 gax-java 的 API 扩展来构建您的重试设置。该库包含一个名为 com.google.api.gax.retrying 的包,它与重试 API 调用相关。

如果您查看文档,StorageOptions.Builder 继承了一个名为 setRetrySettings() 的方法,该方法接受 RetrySettings

您可以使用 this issue 中的此示例代码来使用内部重试:

RetrySettings retrySettings = RetrySettings
  .newBuilder()
  .setMaxAttempts(50)
  .setInitialRetryDelay(Duration.ofSeconds(10))
  .setRetryDelayMultiplier(1.5)
  .setMaxRetryDelay(Duration.ofSeconds(20))
  .build();
storage = StorageOptions.newBuilder().setRetrySettings(retrySettings).setCredentials(credentials).build().getService();

....

请注意问题中的以下说明:

重试机制旨在处理数据传输超时、网络问题或访问被拒绝问题超出其职责范围。它也不会保护您免受临时网络断开的影响。

作为额外的参考,这里有一个 GitHub link 来查看默认的重试设置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。