如何解决Spring Java Google Cloud Storage:处理重试次数和延迟
我想知道是否可以在 Java 代码级 GCS 上处理重试次数和应用于它们的延迟。
我知道根据文档,可以在 .boto 配置文件的“[Boto]”部分修改 num_retries
和 max_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 举报,一经查实,本站将立刻删除。