概念
官网地址:http://dubbo.apache.org/zh/docs/v2.7/user/examples/service-downgrade/
服务降级表示:服务消费者在调用某个服务提供者时,如果该服务提供者报错了,所采取的措施。
比如说consumer调用provider失败了,那么就触发配置的降级策略
集群容错和服务降级的区别在于:
- 集群容错是整个集群范围内的容错
- 服务降级是单个服务提供者的自身容错
配置方式
consumer
// 如果consumer调用provider失败之后,就返回 123 ,这个123 你可以改成一个自定义的json格式的result
//当调用失败的时候就返回降级参数给前端
//注意,服务降级不会触发重试
@Reference(version = "default", mock = "force: return 123")
private DemoService demoService;
调用测试
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class DubboConsumerDemo {
// 如果consumer调用provider失败之后,方法就返回 123 ,这个123 你可以改成一个自定义的json格式的result
//当调用失败的时候就返回降级参数给前端
//注意,服务降级不会触发重试
@Reference(version = "default", mock = "force: return 123")
private DemoService demoService;
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(DubboConsumerDemo.class);
DemoService demoService = context.getBean(DemoService.class);
System.out.println((demoService.sayHello("周瑜")));//返回结果: 123
}
}
上面的方法,当consumer调用provider失败的时候 demoService.sayHello(“周瑜”) 方法的返回结果就是 : 123