Dubbo笔记11——服务降级

1.服务降级方式

能够实现服务降级方式很多,常见的有如下几种情况:

  • 部分服务暂停
  • 全部服务暂停
  • 随机拒绝服务
  • 部分服务延迟

2.dubbo服务降级

Dubbo的服务降级采用的是mock机制。
mock只在出现非业务异常(比如超时,网络异常等)时执行。
mock配置在调用方,服务降级不需要对服务方配置产生修改。
mock的配置支持两种:

  • 一种为boolean值,默认的为false。如果配置为true,则缺省使用mock类名,即接口名+Mock
  • 另外一种则是配置"return null",可以很简单的忽略掉异常。
2.1 Mock Null 服务降级处理

只需要在消费端的服务或者方法中加上mock=“return null”

<dubbo:reference id="fooService" interface="com.test.service.FooService"  timeout="10000" check="false" mock="return null">
2.1 Mock Class 服务降级处理
<dubbo:reference id="fooService" interface="com.test.service.FooService"  timeout="10000" check="false" mock="true">

消费端需要实现有降级需要的提供者接口,实现类名称必须是 接口名 + Mock,并且实现类与接口在同一目录下

public class FooServiceMock implements FooService {
    public void doSomething1() {
        throw new RuntimeException("fail!");
    }

    public String doSomething2(String str) {
        return "降级临时返回结果";
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章