天天看點

Spring Cloud 自主學習總結之熔斷器Hystrix!

1.啥是熔斷器,為啥要用它?

在微服務架構中通常會有多個服務層調用,基礎服務的故障可能會導緻一堆故障

進而造成整個系統的故障,這種現象叫做服務雪崩,服務雪崩是因為“服務生産者”涼涼而

造成“消費消費者”的不可用,并将不可用逐漸放大的過程!

下面放一張圖慢慢看文字進行了解!

Spring Cloud 自主學習總結之熔斷器Hystrix!

注意:藍色代表可以用,橙色代表涼涼。

第一個過程結果是正常的,

第二個過程A作為服務生産者自己涼涼了

到第三個過程a和b的服務全部挂掉了,

到第四個過程cd調用b的時候發現一路全部挂掉了。

Hystrix:中文名字叫豪豬,形容豪豬身上的刺,進而有了保護能力。

hystrix的能力就是在你調用服務實效的時候,通過隔離系統所依賴的服務,

防止服務級聯失敗,同時提供回退的機制,優雅的處理實效問題,并可以更加快的從異常中恢複。

這裡講下個人的了解,在上一篇講feign服務之間的調用,有個問題沒有提出來,就是這個服務之間的調用異常問題,

使用過dubbo架構的朋友肯定對請求逾時非常熟悉,在這一點上,它們都是服務之間的調用異常,有很多中原因可能是網咯或者是其他的,但是怎麼去解決這一的異常就是個麻煩的問題,hystrix的出現就好像針對服務之間的調用異常捕獲一樣!

Spring Cloud 自主學習總結之熔斷器Hystrix!

下面通過以下段代碼來了解下再項目中如何使用!

首先在yml配置檔案添加

feign:

hystrix:

enabled: true

然後就是在調用服務的client包下面建立一個impl包,寫一個熔斷器實作類,

實作調用服務接口!在那個接口方法裡寫如下資訊!

Spring Cloud 自主學習總結之熔斷器Hystrix!

接口層的注解也是需要修改下!

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

繼續閱讀