gRPC 超时与重试策略(Deadline、RetryPolicy、幂等)关键实践与参数Deadline:客户端设置总体超时;服务端遵守并提前取消长计算。RetryPolicy:对可重试错误(`UNAVAILABLE` 等)启用指数退避与最大重试次数。幂等:对非幂等方法禁止自动重试;引入幂等键保障安全。配置示例(Service Config 片段){
"methodConfig": [{
"name": [{"service": "api.Service"}],
"timeout": "3s",
"retryPolicy": {
"maxAttempts": 5,
"initialBackoff": "0.1s",
"maxBackoff": "1s",
"backoffMultiplier": 2,
"retryableStatusCodes": ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
}
}]
}
验证方法故障演练与限流下观察重试成功率与尾延迟;确保不形成雪崩。统计错误分类与策略命中;优化参数与预算。审计重试行为与用户体验影响。注意事项与网关限流与熔断协同;避免负反馈。服务端需快速失败与正确传播取消与超时。对批量与流式场景单独评估策略。

发表评论 取消回复