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 "降級臨時返回結果";
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章