zuul 重试 配置与实践

本文详细介绍了在微服务架构中使用Spring Retry进行重试操作的必要步骤,包括Maven依赖引入、Zuul配置参数调整及 Ribbon 的重试次数配置。通过实例演示了不同场景下重试机制的行为差异,特别指出当只有一个服务提供者时,如何避免意外的多次调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重试

必要步骤

1.必须要引入maven依赖,否则不生效

<dependency>

<groupId>org.springframework.retry</groupId>

<artifactId>spring-retry</artifactId>

<version>1.2.2.RELEASE</version>

</dependency>

2.zuul.retryable=true 必须要配置为true

3.重试次数

#对当前实例的重试次数(不包含首次调用)

ribbon.MaxAutoRetries

#切换实例的重试次数(不包含首次调用)

ribbon.MaxAutoRetriesNextServer

 

如果想给某个服务配置单独配置重试次数,可以配置成user-service.ribbon.MaxAutoRetries ,把服务名放到ribbon前面即可。

 

亲测,如果配置成

ribbon.MaxAutoRetries=1

ribbon.MaxAutoRetriesNextServer=1

1.如果有2个服务提供者A和B,则会每个调用2次,满足预期效果,先调服务A,超时,按MaxAutoRetries=1,则再调A 1次,又超时;按MaxAutoRetriesNextServer=1,换1台服务器B,再调用1次,超时;然后再重试1次B,还是超时,整个调用结束。

2.如果只有1个服务提供者A,则会调用服务提供者A 4次;估计是由于MaxAutoRetriesNextServer=1,切换后还是调用到了服务A上,导致调了4次。

3.总结,如果只有1台服务提供者,MaxAutoRetriesNextServer设置成0比较好,否则重试次数可能会和你预期的不一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值