之前的一片博客使用的是Hystrix注解,指定的一个方法作为服务降级调用的方法。https://blog.csdn.net/qq_41890624/article/details/103744211
这次使用类方式实现服务降级和隔离。
使用springcloud-vhukze-order-service-impl中的OrderServiceImpl中的getMember接口测试。
新建一个包,名称为fallback
包下新建一个类,MemberServiceFallback
实现Feign客户端接口,实现接口中的方法,
方法的返回值就是返回的降级提示
@Component public class MemberServiceFallback implements MemberServiceFeign{ @Override public String getMember(String name) { // TODO Auto-generated method stub return "类方式服务降级"; } }
并且在类上面添加@Component注解,把此类的对象添加到Spring容器中
在feign客户端接口注解中添加一个属性fallback,值为刚刚那个实现类,如下
@FeignClient(value="app-vhukze-member",fallback=MemberServiceFallback.class) @Component public interface MemberServiceFeign extends IMemberService{ }
把之前配置文件中设置的Hystrix超时时间禁止的配置注释掉,
默认超时时间是一秒,getMember中线程等待了1.5秒。
会触发服务降级提示。
启动Eureka,Member和Order项目,访问刚才添加那个接口http://localhost:8020/toMember?name=22