-
Notifications
You must be signed in to change notification settings - Fork 227
retry client
chengyouling edited this page Dec 12, 2022
·
9 revisions
客户端调用服务端的时候,通常采用的是REST,服务端故障、网络故障等场景,可能导致短暂失败。 如果服务端存在多个实例,那么就可以通过转移请求的方式保证请求成功。
Spring Cloud Huawei的客户端重试可以用下图表示:
请求
consumer ------REST----X---> provider(instance1)
--Y---> provider(instance2)
响应
<-------Y----------
servicecomb:
matchGroup:
AllOperation: |
matches:
- apiPath:
prefix: "/"
retry:
AllOperation: |
maxAttempts: 3
上述策略在consumer请求失败的情况下,会重试3次(不包括本次请求,即最多调用4次),重试的过程中, 会根据负载均衡策略尽可能重新选择一个新的实例。
servicecomb:
matchGroup:
AllOperation: |
matches:
- apiPath:
prefix: "/"
serviceName: privder
retry:
AllOperation: |
maxAttempts: 3
retryOnSame: 1
上述策略在consumer请求失败的情况下,会重试3次(不包括本次请求,即最多调用4次),第一次重试会使用请求发起 的时候的实例,第二次、第三次重试会根据负载均衡策略尽可能重新选择一个新的实例。
根据负载均衡策略选择新的实例,可能选择到请求发起的实例,具体取决于负载均衡策略和状态。
Spring Cloud Gateway可以使用上述重试策略和配置。
注意:当前版本不支持 retryOnSame 配置。 需要等待Spring Cloud Gateway社区版本支持传递上下文。
集成Spring Cloud Huawei以后,默认集成了客户端重试模块 spring-cloud-starter-huawei-governance
,只需要通过配置开启具体的客户端重试策略。
-
使用Spring Cloud Huawei功能
-
使用服务治理
-
生态集成
-
迁移改造问题
-
配置参考
-
优秀实践
-
常见问题