中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springCloud如何使用Hystrix實現容錯

發布時間:2020-06-02 11:02:26 來源:億速云 閱讀:115 作者:Leah 欄目:編程語言

這篇文章的知識點包括:雪崩效應的介紹、Hystrix實現容錯,閱讀完整文相信大家對springCloud使用Hystrix實現容錯的方法有了一定的認識。

一、雪崩效應

springCloud如何使用Hystrix實現容錯

如上圖可見,A服務作為基礎服務,當他掛掉之后,導致級聯故障,BCD都掛掉,導致雪崩效應。

二、如何容錯

  • 方法一:設置超時

通常情況下一次遠程連接就對應這一個線程或者進程,如果響應太慢,這個線程或者進程得不到釋放,資源就會逐漸消耗導致服務不可用。此時設置超時,讓資源盡快釋放。

  • 方法二:使用斷路器模式

在設置超時的情況下,如果對某個服務已經不可用時,所有新的請求都需要等待設置的超時時間,但此時這些等待時間已經毫無意義。

斷路器應該事先快速失敗,如果在一段時間檢測到許多類似的錯誤,就會對該服務快速失敗,停止請求已停掉的服務。斷路器也應該可以自動診斷依賴的服務是否已經恢復正常。

斷路器邏輯:

1、正常情況下,斷路器關閉,可正常訪問;

2、在一段時間內請求失敗率達到閾值,斷路器打開;

3、打開后進入“半開”狀態。此時可允許一個請求訪問依賴的服務,若成功則關閉斷路器,若失敗則繼續保持打開狀態。

三、使用Hystrix實現容錯

Hystrix:是由Netflix開源的一個延遲和容錯庫,用于隔離訪問遠程系統、服務或者第三方庫,防止級聯失敗。

實現方式:

  • 包裹請求

  • 跳閘機制:當服務錯誤率達到一定閾值時,自動跳閘或者手動跳閘

  • 資源隔離:Hystrix為每個依賴都維護了一個小型的線程池,當線程池已滿,會立即拒絕該依賴的請求,加速失敗判定。

  • 監控

  • 回退機制:發生錯誤時,執行回退機制,類似缺省值;

  • 自我修復:斷路器打開后的自動恢復機制

整合Hystrix

1、為movie添加依賴:

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-hystrix</artifactId>
   <version>1.4.3.RELEASE</version>
</dependency>

2、在啟動類上加上如下注解:

@EnableHystrix

3、修改controller:

@RequestMapping(value = "/movie/findById", method = RequestMethod.GET)
@HystrixCommand(fallbackMethod = "findByIdFallback")
public Map findById(Integer userId) {
    log.info("/movie/findById被訪問,參數:userId=" + userId);
    //使用端口調用
    /*ResponseEntity<HashMap> forEntity =
            this.restTemplate.getForEntity(findByUserIdUrl + userId, HashMap.class);*/
    //使用Eureka+ribbon
    return this.restTemplate.getForObject("http://user/user/getUserInfo?userId=" + userId, HashMap.class);

}

public Map<String, String> findByIdFallback(Integer userId){
    Map<String, String> user = new HashMap<>(3);
    user.put("name","默認用戶");
    user.put("id","-1");
    user.put("age","18");
    return user;
}

啟動注冊中心和【movie】服務,不啟動【user】,訪問   /movie/findById?userId=1

響應為缺省值。

看完這篇文章,你們學會springCloud使用Hystrix實現容錯的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仪陇县| 靖边县| 千阳县| 利辛县| 潮安县| 苏尼特左旗| 会东县| 峡江县| 房产| 依安县| 祁连县| 谷城县| 尤溪县| 吉木萨尔县| 博罗县| 红河县| 吐鲁番市| 天长市| 湘阴县| 潼南县| 新闻| 民乐县| 泰顺县| 弋阳县| 英山县| 彭泽县| 潜山县| 定兴县| 和田市| 汝州市| 调兵山市| 河间市| 丹寨县| 民县| 新闻| 仲巴县| 聊城市| 大连市| 南岸区| 新宾| 怀宁县|