您的位置:首页 > 编程语言 > Java开发

Spring Cloud Feign 实现服务降级

2018-01-18 14:49 555 查看
当后端一个接口响应非常慢的时候,那么请求该接口的时候会被强制等待,直到返回或者超时结束.若在高负载的情况下,如果不做处理的话,这些问题会导致系统崩溃.
Feign已经为我们集成了Hystrix,默认就会使用断路器包裹所有方法
下面来看下简单的服务降级使用过程:
继续使用前面搭建的Eureka,Feign,Service服务
一 : 新建一个UserServiceFallBack类,实现UserService接口
package cn.sh.daniel.fallback;

import org.springframework.stereotype.Component;
import cn.sh.daniel.entity.User;
import cn.sh.daniel.service.UserService;
/**
* UserService接口的降级服务
*
* @author Daniel
* @time 2018年1月18日 下午2:35:09
*
*/
@Component
public class UserServiceFallBack implements UserService{

@Override
public User findUserById(Long id) {
return new User();
}

@Override
public String aveUser(User user) {
return "Error";
}

@Override
public User findUserByNameAndPassword(String name, String password) {
return new User();
}
}这边只是简单的实现了这几个方法二 : 在UserService接口中添加fallback去指定降级的方法
package cn.sh.daniel.service;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import cn.sh.daniel.config.FeignLoggerConfiguration;
import cn.sh.daniel.entity.User;
import cn.sh.daniel.fallback.UserServiceFallBack;

@FeignClient(value = "cloud-shop-userservice",fallback = UserServiceFallBack.class,configuration = FeignLoggerConfiguration.class)
public interface UserService {

@GetMapping("/user/{id}")
public User findUserById(@PathVariable("id")Long id);

@PostMapping("/user/user")
public String aveUser(@RequestBody User user) ;

@GetMapping("/user/findUser")
public User findUserByNameAndPassword(@RequestParam("name")String name ,@RequestParam("password")String password);
}三 : 重启Feign服务,调用服务


可以正常调用, 那此处将userservice服务shut down掉,再执行此方法看效果



直接报错了?
经过查证,原来feign集成hystrix需要配置开启
feign:
  hystrix:
    enabled: true

重新启动继续上面的操作:



发现终于走进了降级方法啦!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐