You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java gRPC客户端如何为每个重试请求设置单次请求超时?

Java gRPC客户端重试请求超时配置

要给每一次重试请求单独设置超时时间,你需要在服务配置的重试策略中添加perAttemptTimeout参数,这个参数专门用于控制单次重试尝试的超时时长。

具体配置方式

你当前是通过defaultServiceConfig(this.getRetryConfig())传入重试配置,所以需要在getRetryConfig()返回的JSON结构里,给retryPolicy添加perAttemptTimeout字段,值为带单位的字符串(比如"2000ms"表示2秒)。

示例配置如下:

{
  "methodConfig": [
    {
      "name": [{}], // 匹配所有服务方法,也可以指定特定方法
      "retryPolicy": {
        "maxAttempts": 3,
        "initialBackoff": "100ms",
        "maxBackoff": "500ms",
        "backoffMultiplier": 2.0,
        "retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"],
        "perAttemptTimeout": "2000ms" // 单次重试请求的超时时间
      }
    }
  ]
}

注意事项

  • 这个perAttemptTimeout是单次重试尝试的超时,和你通过存根设置的全局总超时(比如stub.withDeadlineAfter(10, TimeUnit.SECONDS))是独立生效的:单次尝试超时后会触发重试,直到达到总超时时间或者maxAttempts上限。
  • 单位支持ns(纳秒)、us(微秒)、ms(毫秒)、s(秒)、m(分钟)等,必须明确指定单位。

内容的提问来源于stack exchange,提问作者yashjain12yj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:17:12