# 截止时间超出：gRPC：等待服务器响应 100 毫秒后截止时间已超出

- **ID:** `grpc/grpc-deadline-too-short`
- **领域:** grpc
- **类别:** runtime_error
- **错误码:** `EDEADLINE`
- **验证级别:** ai_generated
- **修复率:** 90%

## 根因

客户端配置的 RPC 截止时间（超时）相对于服务器的处理时间太短，导致过早取消。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| gRPC v1.62.0 | active | — | — |
| gRPC v1.59.0 | active | — | — |
| gRPC v1.55.0 | active | — | — |
| Python gRPC v1.60.0 | active | — | — |

## 解决方案

1. ```
   将客户端截止时间增加到合理值，例如从 100 毫秒增加到 5000 毫秒，Java 中使用 `withDeadlineAfter(5000, TimeUnit.MILLISECONDS)`，Python 中使用 `timeout=5`。
   ```
2. ```
   分析服务器端延迟并优化慢速端点（例如添加缓存、异步处理），以将响应时间降低到截止时间以下。
   ```

## 无效尝试

- **Increasing server timeout setting (e.g., grpc-timeout header)** — The deadline is client-side; server ignores client deadline if it's not propagated. (75% 失败率)
- **Disabling deadline entirely on the client** — gRPC requires a default deadline; setting to infinite can cause resource leaks. (70% 失败率)
