spring-retry框架使用说明

spring-retry技术是spring框架中的调用重试技术实现,通过retry技术,可以对当前调用失败的请求重新发起重试机制,重试成功即返回,若继续失败,是否再次重试依代码配置决定。

示例工程

示例中,使用三个工程

  • eureka注册中心
  • retry-client 消费方,发起请求调用
  • retry-server 服务方,提供服务

retry-client工程

代码结构

其中 RetryClientApplication.java 为工程启动类

Controller.java 请求入口类

@RestController
public class Controller {

	@Autowired
	private HelloService helloService;
	
	@GetMapping("/hello")
	public String hello() {
		return helloService.hello();
	}
}

HelloService.java 服务实现类

@EnableFeignClients("com.retry.feign")
@Service
public class HelloService {

	@Autowired
	FeignService feignService;
	
	public String hello() { 
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println("调用远程服务开始:" + df.format(new Date()));
		return feignService.hello();
	}
	
}

FeignService.java 外调feign接口类

@FeignClient("retry-server")
public interface FeignService {
 
	@GetMapping("/hi")
	String hello();
	
}

其中调用关系,Controller -> HelloService -> FeignService 

retry-server工程

其中 RetryServerApplication.java 为工程启动类

HiController.java 为请求入口,实现一个hello方法

@RestController
public class HiController {

	@GetMapping("/hi")
	public String hello() {
		return "I am feign-provider";
	}
}

依次启动注册中心,retry-client和retry-server,在浏览器输入 http://localhost:5000/hello 可以正常请求到retry-server提供的服务

改造注解说明

retry重试改造时,对要发起重试的客户端工程进行改造,对应到上面的例子,就是retry-client工程,retry-server工程为服务提供方,不须要改造。

增加pom.xml依赖


                
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值