欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud的Hystrix簡(jiǎn)單介紹

 更新時(shí)間:2023年07月25日 10:21:02   作者:「已注銷」  
這篇文章主要介紹了SpringCloud的Hystrix簡(jiǎn)單介紹,SpringCloud Hystrix是Netflix開(kāi)源的一款容錯(cuò)框架,具備服務(wù)降級(jí),服務(wù)熔斷,依賴隔離,監(jiān)控(Hystrix Dashboard)等功能,同樣具有自我保護(hù)能力,需要的朋友可以參考下

Hystrix 介紹

Hystrix ,中文含義是豪豬,因其背上長(zhǎng)滿棘刺,從而擁有了自我保護(hù)的能力。

SpringCloud Hystrix是Netflix開(kāi)源的一款容錯(cuò)框架,具備服務(wù)降級(jí),服務(wù)熔斷,依賴隔離,監(jiān)控(Hystrix Dashboard)等功能,同樣具有自我保護(hù)能力。為了實(shí)現(xiàn)容錯(cuò)和自我保護(hù)

服務(wù)雪崩

分布式系統(tǒng)環(huán)境下,服務(wù)間類似依賴非常常見(jiàn),一個(gè)業(yè)務(wù)調(diào)用通常依賴多個(gè)基礎(chǔ)服務(wù)。如下圖,對(duì)于同步調(diào)用,當(dāng)庫(kù)存服務(wù)不可用時(shí),商品服務(wù)請(qǐng)求線程被阻塞,當(dāng)有大批量請(qǐng)求調(diào)用庫(kù)存服務(wù)時(shí),最終可能導(dǎo)致整個(gè)商品服務(wù)資源耗盡,無(wú)法繼續(xù)對(duì)外提供服務(wù)。并且這種不可用可能沿請(qǐng)求調(diào)用鏈向上傳遞,這種現(xiàn)象被稱為雪崩效應(yīng)。

一個(gè)服務(wù)失敗,導(dǎo)致整條鏈路的服務(wù)都失敗的情形,我們稱之為服務(wù)雪崩

服務(wù)降級(jí)

一般是從整體負(fù)荷考慮。就是當(dāng)某個(gè)服務(wù)熔斷之后,服務(wù)器將不再被調(diào)用,此時(shí)客戶端可以自己準(zhǔn)備一個(gè)本地的fallback回調(diào),返回一個(gè)缺省值。

這樣做,雖然會(huì)出現(xiàn)局部的錯(cuò)誤,但可以避免因?yàn)橐粋€(gè)服務(wù)掛機(jī),而影響到整個(gè)架構(gòu)的穩(wěn)定性。

?通過(guò)服務(wù)降級(jí),能保證在某個(gè)或某些服務(wù)出問(wèn)題的時(shí)間,不會(huì)導(dǎo)致整個(gè)項(xiàng)目出現(xiàn)問(wèn)題,避免級(jí)聯(lián)故障,從而來(lái)提高分布式系統(tǒng)的彈性。

服務(wù)熔斷

Hystrix意為“斷路器”,就和我們生活中的保險(xiǎn)絲,開(kāi)關(guān)一個(gè)道理。

當(dāng)我們給整個(gè)服務(wù)配置了服務(wù)降級(jí)后,如果服務(wù)提供者發(fā)生了錯(cuò)誤后,就會(huì)調(diào)用降級(jí)后的方法來(lái)保證程序的運(yùn)行。

但是呢?有一個(gè)問(wèn)題,調(diào)用者并不知道它調(diào)用的這個(gè)服務(wù)出錯(cuò)了,就會(huì)在業(yè)務(wù)發(fā)生的時(shí)候一直調(diào)用,然后服務(wù)會(huì)一直報(bào)錯(cuò),然后去調(diào)用降級(jí)方法。好比下圖中:

Hystrix入門(mén)案例

添加如下依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

啟動(dòng)類上添加注解

@EnableHystrix

使用feign請(qǐng)求數(shù)據(jù) ,加上注解@HystrixCommand(fallbackMethod="fallback")

fallback是方法 在方法中保持傳參和返回值相同。

服務(wù)報(bào)錯(cuò)降級(jí)

// http://localhost:7001/consumer/test
@HystrixCommand(fallbackMethod = "fallback")
@GetMapping("/test")
public String testFeign(String str) throws Exception {
    if ("y".equalsIgnoreCase(str)) {
        throw new Exception();
    }
    return providerService.provider(str);
}
public String fallback(String str) {
    return "服務(wù)繁忙,請(qǐng)稍后重試!";
}

服務(wù)超時(shí)降級(jí)

// http://localhost:7001/consumer/timeout
@HystrixCommand(fallbackMethod = "timeout",commandProperties = {
        @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "3000")
})
@GetMapping("/timeout")
public String testTimeout(String str) throws Exception {
    Thread.sleep(5000);
    return providerService.provider(str);
}
public String timeout(String str) {
    return "請(qǐng)求時(shí)間超時(shí)";
}

到此這篇關(guān)于SpringCloud的Hystrix簡(jiǎn)單介紹的文章就介紹到這了,更多相關(guān)SpringCloud的Hystrix內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解SpringBoot中的index首頁(yè)的訪問(wèn)、自定義Favicon圖標(biāo)

    詳解SpringBoot中的index首頁(yè)的訪問(wèn)、自定義Favicon圖標(biāo)

    這篇文章主要介紹了SpringBoot中的index首頁(yè)的訪問(wèn)、自定義Favicon圖標(biāo),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • java如何在項(xiàng)目中實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出功能

    java如何在項(xiàng)目中實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出功能

    這篇文章主要介紹了java如何在項(xiàng)目中實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出功能的相關(guān)資料,EasyExcel是一個(gè)基于Apache?POI開(kāi)發(fā)的開(kāi)源Java庫(kù),用于簡(jiǎn)化Excel文件的讀寫(xiě)操作,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • JAVA 日常開(kāi)發(fā)中Websocket示例詳解

    JAVA 日常開(kāi)發(fā)中Websocket示例詳解

    JAVA |日常開(kāi)發(fā)中Websocket詳解,WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,它在Web應(yīng)用中實(shí)現(xiàn)了客戶端與服務(wù)器之間的實(shí)時(shí)數(shù)據(jù)傳輸,本文將詳細(xì)介紹Java開(kāi)發(fā)中WebSocket的使用,包括基本概念、Java API、使用示例以及注意事項(xiàng),感興趣的朋友一起看看吧
    2024-12-12
  • mybatis使用pagehelper插件過(guò)程詳解

    mybatis使用pagehelper插件過(guò)程詳解

    這篇文章主要介紹了mybatis使用pagehelper插件過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Spring創(chuàng)建Bean的生命周期詳析

    Spring創(chuàng)建Bean的生命周期詳析

    這篇文章主要介紹了Spring創(chuàng)建Bean的生命周期詳析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • mybatis注解之@Mapper和@MapperScan的使用

    mybatis注解之@Mapper和@MapperScan的使用

    這篇文章主要介紹了mybatis注解之@Mapper和@MapperScan的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 大話Java混合運(yùn)算規(guī)則

    大話Java混合運(yùn)算規(guī)則

    這篇文章主要介紹了大話Java混合運(yùn)算規(guī)則,小編覺(jué)得挺不錯(cuò)的,在這里分享給大家,需要的朋友可以了解下。
    2017-10-10
  • SpringBoot Actuator未授權(quán)訪問(wèn)漏洞修復(fù)詳解

    SpringBoot Actuator未授權(quán)訪問(wèn)漏洞修復(fù)詳解

    這篇文章主要介紹了SpringBoot Actuator未授權(quán)訪問(wèn)漏洞修復(fù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java鍵盤(pán)錄入Scanner類的使用方法詳析

    Java鍵盤(pán)錄入Scanner類的使用方法詳析

    在Java編程中,引用數(shù)據(jù)類型是用來(lái)存儲(chǔ)對(duì)象的引用(地址),而Scanner類是引用數(shù)據(jù)類型的一種,用于讀取輸入數(shù)據(jù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • Java中equals和==的區(qū)別詳解

    Java中equals和==的區(qū)別詳解

    這篇文章主要介紹了詳解 Java 中 equals 和 == 的區(qū)別的相關(guān)資料,equals 和 == 都是用來(lái)檢測(cè)兩個(gè)字符串是否相等,返回值也都是布爾型,但是兩者在內(nèi)部比較的處理中卻不盡相同需要的朋友可以參考下
    2021-09-09

最新評(píng)論