加上@HystrixCommand注解,指定服务调用失败的回退方法,服务调用超时也会调用回退方法
controller:
@RequestMapping(value = "testHystric", method = RequestMethod.GET)
public String testHystric() {
return helloService.hello();
}
service:
@Service
public class HelloService {
@Autowired
private RestTemplate restTemplate;
@HystrixCommand(fallbackMethod = "error")
public String hello(){
ResponseEntity<String> forEntity = restTemplate.getForEntity("http://PRODUCER-SERVICE/gethello", String.class);
return forEntity.getBody();
}
public String error() {
return "服务调用失败,并且调用断路器,调用回退方法,防止雪崩!";
}
}
pom文件中引入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
浏览器调用接口:http://localhost:1084/testHystric
调用:
关闭被调用的服务;