springcloud整合feign
第一种:
1.添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在消费端添加代理
//DepartFeignFallBackFactory 服务降级使用
@FeignClient(value = "provider-test",fallbackFactory = DepartFeignFallBackFactory.class)
@RequestMapping("/provider/depart")
public interface DepartFeign {
@PostMapping("/save")
public boolean saveHandler(@RequestBody Depart depart);
@DeleteMapping("/del/{id}")
public boolean delHandler(@PathVariable("id") Integer id);
@PutMapping("/update")
public boolean updateHandler(@RequestBody Depart depart);
@GetMapping("/get/{id}")
public Depart getHandler(@PathVariable("id") Integer id);
@GetMapping("/list")
public List<Depart> listHandler();
}
3.服务降级处理类
@Component
public class DepartFeignFallBackFactory implements FallbackFactory<DepartFeign> {
@Override
public DepartFeign create(Throwable throwable) {
return new DepartFeign() {
@Override
public boolean saveHandler(Depart depart) {
System.out.println("执行saveHandler降级的方法");
return false;
}
@Override
public boolean delHandler(Integer id) {
System.out.println("执行delHandler降级的方法");
return false;
}
@Override
public boolean updateHandler(Depart depart) {
System.out.println("执行updateHandler降级的方法");
return false;
}
@Override
public Depart getHandler(Integer id) {
System.out.println("执行getHandler降级的方法");
return null;
}
@Override
public List<Depart> listHandler() {
System.out.println("执行listHandler降级的方法");
return null;
}
};
}
}
4.配置文件
feign:
client:
config:
default:
connectTimeout: 5000
readTimeout: 5000
hystrix:
enabled: true
circuitbreaker:
enabled: true
provider-test:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule #负载均衡策略
第二种
1.添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在消费端添加代理
//DepartFeignFallBackFactory 服务降级使用
@FeignClient(value = "provider-test",fallback = DepartFeignFallBackFactory.class)//注意这里使用的是fallback而不是fallbackfactory
@RequestMapping("/provider/depart")
public interface DepartFeign {
@PostMapping("/save")
public boolean saveHandler(@RequestBody Depart depart);
@DeleteMapping("/del/{id}")
public boolean delHandler(@PathVariable("id") Integer id);
@PutMapping("/update")
public boolean updateHandler(@RequestBody Depart depart);
@GetMapping("/get/{id}")
public Depart getHandler(@PathVariable("id") Integer id);
@GetMapping("/list")
public List<Depart> listHandler();
}
3.服务降级处理类
@Component
@RequestMapping("/fallback/consumer/depart")//这个必须有,链接可以随意只要与其他链接不重复即可
public class DepartFeignFallBackFactory2 implements DepartFeign {
@Override
public boolean saveHandler(Depart depart) {
System.out.println("执行saveHandler降级的方法");
return false;
}
@Override
public boolean delHandler(Integer id) {
System.out.println("执行delHandler降级的方法");
return false;
}
@Override
public boolean updateHandler(Depart depart) {
System.out.println("执行updateHandler降级的方法");
return false;
}
@Override
public Depart getHandler(Integer id) {
System.out.println("执行getHandler降级的方法");
return null;
}
@Override
public List<Depart> listHandler() {
System.out.println("执行listHandler降级的方法");
return null;
}
}

浙公网安备 33010602011771号