1.啥是熔斷器,為啥要用它?
在微服務架構中通常會有多個服務層調用,基礎服務的故障可能會導緻一堆故障
進而造成整個系統的故障,這種現象叫做服務雪崩,服務雪崩是因為“服務生産者”涼涼而
造成“消費消費者”的不可用,并将不可用逐漸放大的過程!
下面放一張圖慢慢看文字進行了解!
注意:藍色代表可以用,橙色代表涼涼。
第一個過程結果是正常的,
第二個過程A作為服務生産者自己涼涼了
到第三個過程a和b的服務全部挂掉了,
到第四個過程cd調用b的時候發現一路全部挂掉了。
Hystrix:中文名字叫豪豬,形容豪豬身上的刺,進而有了保護能力。
hystrix的能力就是在你調用服務實效的時候,通過隔離系統所依賴的服務,
防止服務級聯失敗,同時提供回退的機制,優雅的處理實效問題,并可以更加快的從異常中恢複。
這裡講下個人的了解,在上一篇講feign服務之間的調用,有個問題沒有提出來,就是這個服務之間的調用異常問題,
使用過dubbo架構的朋友肯定對請求逾時非常熟悉,在這一點上,它們都是服務之間的調用異常,有很多中原因可能是網咯或者是其他的,但是怎麼去解決這一的異常就是個麻煩的問題,hystrix的出現就好像針對服務之間的調用異常捕獲一樣!
下面通過以下段代碼來了解下再項目中如何使用!
首先在yml配置檔案添加
feign:
hystrix:
enabled: true
然後就是在調用服務的client包下面建立一個impl包,寫一個熔斷器實作類,
實作調用服務接口!在那個接口方法裡寫如下資訊!
接口層的注解也是需要修改下!
@FeignClient(value="base",fallback = LabelClientImpl.class)