熔斷器Hystrix

1 熔斷器Hystrix

1.1 爲什麼要使用熔斷器

​ 在微服務架構中通常會有多個服務層調用,基礎服務的故障可能會導致級聯故障,進而造成整個系統不可用的情況,這種現象被稱爲服務雪崩效應。服務雪崩效應是一種因“服務提供者”的不可用導致“服務消費者”的不可用,並將不可用逐漸放大的過程。

​ 如果下圖所示:A作爲服務提供者,B爲A的服務消費者,C和D是B的服務消費者。A不可用引起了B的不可用,並將不可用像滾雪球一樣放大到C和D時,雪崩效應就形成了。

 

如何避免產生這種雪崩效應呢?我們可以使用Hystrix來實現熔斷器。

1.2 什麼是Hystrix

Hystrix [hɪst'rɪks]的中文含義是豪豬, 因其背上長滿了刺,而擁有自我保護能力

​ Hystrix 能使你的系統在出現依賴服務失效的時候,通過隔離系統所依賴的服務,防

止服務級聯失敗,同時提供失敗回退機制,更優雅地應對失效,並使你的系統能更快地

從異常中恢復。

​ 瞭解熔斷器模式請看下圖:

1.3 快速體驗

Feign 本身支持Hystrix,不需要額外引入依賴。

(1)修改tensquare_qa模塊的application.yml ,開啓hystrix

feign:

  hystrix:

    enabled: true

(2)在com.tensquare.qa.client包下創建impl包,包下創建熔斷實現類,實現自接口LabelClient

@Component

public class LabelClientImpl implements LabelClient {

    @Override

    public Result findById(String id) {

        return new Result(false, StatusCode.ERROR,"熔斷器啓動了");

    }

}

(3)修改LabelClient的註解

  @FeignClient(value="tensquare‐base",fallback = LabelClientImpl.class)

(4)測試運行

重新啓動問答微服務,測試看熔斷器是否運行。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章