Jer*_*y L 5 spring kotlin spring-retry spring-boot spring-cloud-feign
我正在使用混合 Spring-Cloud + feign + spring-retry 来帮助在客户端重试请求(都是基于 Kotlin 的后端)
我的 spring-boot conf 是这样的:
myApp:
ribbon:
OkToRetryOnAllOperations: true
retryableStatusCodes: 404, 503
Run Code Online (Sandbox Code Playgroud)
(注意:OkToRetryOnAllOperations=true 仅用于重试 POST/PUT 请求)
重试 404 和 503 HTTP 代码听起来不错,但我不知道是否有要重试的“经典”或“默认”错误代码列表。这种好的做法存在吗?
我们假设所有请求在服务器端都是幂等的(如果不是,重试可能会导致问题)。
Luc*_*uez 15
一般来说,我推荐这些:
但这实际上取决于 API,因此您可以查找其文档(如果有)。例如,Whatsapp 使用 500 表示可以重试或不可重试的错误。
作为一个非常粗略的经验法则:
4XX - 客户端做了坏事
5XX - 服务器做了坏事
但这在很大程度上取决于实际的 API。
你应该重试 500 吗?也许是因为服务器在连接到数据库时出现了意外的问题。或者,也许您向它发送了它不期望的东西,而不是返回 4XX,它崩溃了。
通常没有太多理由重试 404,除非您期望此资源会出现。
唯一对重试有效的 HTTP 代码是 408、502、503 和 504
| 归档时间: |
|
| 查看次数: |
4269 次 |
| 最近记录: |