javascript
Spring Cloud(三) 熔断器Hystrix
前文回顧:
Spring Cloud(一)Eureka Server-單體及集群搭建
Spring Cloud(二) 配置Eureka Client
一.Hystrix介紹
在微服務架構中通常會有多個服務層調用,基礎服務的故障可能會導致級聯故障,進而造成整個系統不可用的情況,這種現象被稱為服務雪崩效應。服務雪崩效應是一種因“服務提供者”的不可用導致“服務消費者”的不可用,并將不可用逐漸放大的過程。
Hystrix是一個庫,通過添加延遲容忍和容錯邏輯,幫助你控制這些分布式服務之間的交互。Hystrix通過隔離服務之間的訪問點、停止級聯失敗和提供回退選項來實現這一點,所有這些都可以提高系統的整體彈性。
二.Hystrix的設計原則
-
防止任何單個依賴項耗盡所有容器(如Tomcat)用戶線程。
-
甩掉包袱,快速失敗而不是排隊。
-
在任何可行的地方提供回退,以保護用戶不受失敗的影響。
-
使用隔離技術(如隔離板、泳道和斷路器模式)來限制任何一個依賴項的影響。
-
通過近實時的度量、監視和警報來優化發現時間。
-
通過配置的低延遲傳播來優化恢復時間。
-
支持對Hystrix的大多數方面的動態屬性更改,允許使用低延遲反饋循環進行實時操作修改。
-
避免在整個依賴客戶端執行中出現故障,而不僅僅是在網絡流量中。
三.代碼示例
代碼基于上一篇博客開發
1.配置文件
application.properties添加這一條:
feign.hystrix.enabled=true2.創建回調類
@Service public class HelloRemoteHystrix implements HelloRemote {@Overridepublic String hello(@RequestParam(value = "name") String name) {return "hello " + name + ",this message send failed";} }3.添加fallback屬性
@FeignClient(name= "spring-cloud-producer", fallback = HelloRemoteHystrix.class) public interface HelloRemote { ?@RequestMapping(value = "/hello")String hello(@RequestParam(value = "name") String name); }4.測試
依次啟動spring-cloud-eureka、spring-cloud-producer、spring-cloud-consumer三個項目
瀏覽器中輸入:http://localhost:9001/hello/yfy
返回:hello yfy,welcome to Spring Cloud
手動停止spring-cloud-producer服務
瀏覽器中輸入:http://localhost:9001/hello/yfy
返回:hello yfy,this message send failed
總結
以上是生活随笔為你收集整理的Spring Cloud(三) 熔断器Hystrix的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Cloud(二) 配置Eu
- 下一篇: Spring Cloud(四) API网