概念

官网地址:http://dubbo.apache.org/zh/docs/v2.7/user/examples/service-downgrade/

服务降级表示:服务消费者在调用某个服务提供者时,如果该服务提供者报错了,所采取的措施。

比如说consumer调用provider失败了,那么就触发配置的降级策略

集群容错和服务降级的区别在于:

  1. 集群容错是整个集群范围内的容错
  2. 服务降级是单个服务提供者的自身容错

配置方式

consumer

  1. // 如果consumer调用provider失败之后,就返回 123 ,这个123 你可以改成一个自定义的json格式的result
  2. //当调用失败的时候就返回降级参数给前端
  3. //注意,服务降级不会触发重试
  4. @Reference(version = "default", mock = "force: return 123")
  5. private DemoService demoService;

调用测试

  1. import org.apache.dubbo.config.annotation.Reference;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.context.ConfigurableApplicationContext;
  5. @SpringBootApplication
  6. public class DubboConsumerDemo {
  7. // 如果consumer调用provider失败之后,方法就返回 123 ,这个123 你可以改成一个自定义的json格式的result
  8. //当调用失败的时候就返回降级参数给前端
  9. //注意,服务降级不会触发重试
  10. @Reference(version = "default", mock = "force: return 123")
  11. private DemoService demoService;
  12. public static void main(String[] args) {
  13. ConfigurableApplicationContext context = SpringApplication.run(DubboConsumerDemo.class);
  14. DemoService demoService = context.getBean(DemoService.class);
  15. System.out.println((demoService.sayHello("周瑜")));//返回结果: 123
  16. }
  17. }

上面的方法,当consumer调用provider失败的时候 demoService.sayHello(“周瑜”) 方法的返回结果就是 : 123