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 "降級臨時返回結果";
}
}