1、消费者中添加依赖
<!-- 添加hystrix实现服务降级 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2、创建配置类Config,实例化restTemplate
@Configuration
public class ConsumerConfig {
/**
* 实例化RestTemplate对象
*/
@LoadBalanced //负载均衡,默认是轮询
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
3、服务层实现类,编写托底函数
注意托底函数要和需要降级服务的方法一致(返回值,参数)
//指定服务降级返回托底数据的方法
@HystrixCommand(defaultFallback="fallBack02")
@Override
public List<Orders> loadVipOrdersListService() {
// TODO Auto-generated method stub
//完成远程服务的调用
String url="http://orders-provider/orders";
Orders[] result = restTemplate.getForObject(url, Orders[].class);
return Arrays.asList(result);
}
/***
* 定义返回托底数据的方法,fallBack
*/
public List<Orders> fallBack02() {
List<Orders> result=new ArrayList<Orders>();
Orders orders=new Orders();
orders.setId(-1111);
orders.setRemark("-----网络繁忙,稍后再试.......");
orders.setTotal(0);
result.add(orders);
return result;
}
4、启动类要加注解
@SpringBootApplication
@EnableEurekaClient //该服务会注册到eureka注册中心
@EnableHystrix //开启服务降级
public class VipConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(VipConsumerApplication.class, args);
}
}
5、application.yml文件
feign.hystrix.enabled=true