最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud集成Hystrix熔斷過(guò)程分步分解

 更新時(shí)間:2022年09月28日 09:26:39   作者:Echoo2787  
通過(guò)hystrix可以解決雪崩效應(yīng)問(wèn)題,它提供了資源隔離、降級(jí)機(jī)制、融斷、緩存等功能。接下來(lái)通過(guò)本文給大家分享SpringCloud集成Hystrix熔斷,感興趣的朋友一起看看吧

版本:

SpringBoot 2.6.1

SpringCloud 2021.0.0

依賴

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

貼@EnableHystrix注解

@EnableHystrix
@SpringBootApplication
public class ConsumerOneApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerOneApplication.class, args);
    }
}

在需要熔斷的接口上貼@HystrixCommand注解

@RequestMapping("/consumerOne")
@RestController
public class ControllerOne {
    @Autowired
    private RestTemplate restTemplate;
    private String providerOneName = "provider-one";
    @HystrixCommand(fallbackMethod = "fallbackMethodOne")
    @RequestMapping("/serviceOne/{msg}")
    public String serviceOne(@PathVariable("msg") String msg) {
        return restTemplate.getForObject("http://" + providerOneName + "/providerOne/serviceOne/" + msg, String.class);
    }
	/** 熔斷回調(diào)方法 */
    private String fallbackMethodOne(String msg) {
        return "熔斷一默認(rèn)返回:" + msg;
    }
}

異常熔斷測(cè)試

其中一個(gè)服務(wù)方拋異常,另一服務(wù)方正常返回

@RequestMapping("/providerOne")
@RestController
public class ControllerOne {
    @RequestMapping("/serviceOne/{msg}")
    public String serviceOne(@PathVariable("msg") String msg) {
        throw new RuntimeException();
        // return "8702:" + msg;
    }
}
@RequestMapping("/providerOne")
@RestController
public class ControllerOne {
    @RequestMapping("/serviceOne/{msg}")
    public String serviceOne(@PathVariable("msg") String msg) {
        return "8701:" + msg;
    }
}

訪問(wèn)結(jié)果:

超時(shí)熔斷測(cè)試

全局

先配置默認(rèn)超時(shí)時(shí)間為3秒(default為全局)

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 3000

在這里插入代碼片

其中一個(gè)接口睡眠4秒

@RequestMapping("/providerOne")
@RestController
public class ControllerOne {
    @RequestMapping("/serviceOne/{msg}")
    public String serviceOne(@PathVariable("msg") String msg) {
        try {
            Thread.sleep(4 * 1000);
            return "8702:" + msg;
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "8702:" + msg;
    }
}

訪問(wèn)結(jié)果:

當(dāng)服務(wù)方為延時(shí)返回的那個(gè)時(shí),訪問(wèn)等待了3秒返回熔斷默認(rèn)對(duì)象

另一個(gè)正常

單個(gè)接口

除了全局外,另外給serviceTwo接口配置獨(dú)立的超時(shí)時(shí)間,其余不變

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 3000
    serviceTwo:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 5000

增加一個(gè)路徑為serviceTwo的接口

@RequestMapping("/consumerOne")
@RestController
public class ControllerOne {
    @Autowired
    private RestTemplate restTemplate;
    private String providerOneName = "provider-one";
    @HystrixCommand(fallbackMethod = "fallbackMethodOne")
    @RequestMapping("/serviceOne/{msg}")
    public String serviceOne(@PathVariable("msg") String msg) {
        return restTemplate.getForObject("http://" + providerOneName + "/providerOne/serviceOne/" + msg, String.class);
    }
    @HystrixCommand(fallbackMethod = "fallbackMethodOne")
    @RequestMapping("/serviceTwo/{msg}")
    public String serviceTwo(@PathVariable("msg") String msg) {
        return restTemplate.getForObject("http://" + providerOneName + "/providerOne/serviceOne/" + msg, String.class);
    }
    private String fallbackMethodOne(String msg) {
        return "熔斷一默認(rèn)返回:" + msg;
    }
}

測(cè)試結(jié)果:

一個(gè)為等待5秒返回結(jié)果

一個(gè)正常返回

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

相關(guān)文章

  • 如何在Eclipse中設(shè)置Oracle的JDBC

    如何在Eclipse中設(shè)置Oracle的JDBC

    以下是對(duì)在Eclipse中設(shè)置Oracle的JDBC的具體操作方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • Java開(kāi)發(fā)環(huán)境配置及Vscode搭建過(guò)程

    Java開(kāi)發(fā)環(huán)境配置及Vscode搭建過(guò)程

    今天通過(guò)圖文并茂的形式給大家介紹Java開(kāi)發(fā)環(huán)境配置及Vscode搭建過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-07-07
  • Java中注解@JsonFormat與@DateTimeFormat的使用

    Java中注解@JsonFormat與@DateTimeFormat的使用

    從數(shù)據(jù)庫(kù)獲取時(shí)間傳到前端進(jìn)行展示的時(shí)候,我們有時(shí)候可能無(wú)法得到一個(gè)滿意的時(shí)間格式的時(shí)間日期,本文主要介紹了Java中注解@JsonFormat與@DateTimeFormat的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • SpringBoot+shardingsphere實(shí)現(xiàn)按月分表功能教程

    SpringBoot+shardingsphere實(shí)現(xiàn)按月分表功能教程

    這篇文章主要介紹了SpringBoot+shardingsphere實(shí)現(xiàn)按月分表功能教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Spring Data JPA 如何使用QueryDsl查詢并分頁(yè)

    Spring Data JPA 如何使用QueryDsl查詢并分頁(yè)

    這篇文章主要介紹了Spring Data JPA 如何使用QueryDsl查詢并分頁(yè),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java StringTokenizer分隔符拆分字符串

    Java StringTokenizer分隔符拆分字符串

    Java中的StringTokenizer類(lèi)用于將一個(gè)字符串分解成標(biāo)記,本文主要介紹了Java StringTokenizer分隔符拆分字符串,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Java實(shí)現(xiàn)用戶短信驗(yàn)證碼登錄功能實(shí)例代碼

    Java實(shí)現(xiàn)用戶短信驗(yàn)證碼登錄功能實(shí)例代碼

    現(xiàn)在不管是各類(lèi)的網(wǎng)站,還是大小社交app,登錄方式是越來(lái)越多了,但是大部分還是以短信登錄為主,本文主要介紹了java短信驗(yàn)證碼登錄功能設(shè)計(jì)與實(shí)現(xiàn),感興趣的可以了解一下
    2021-11-11
  • Java中InputSteam怎么轉(zhuǎn)String

    Java中InputSteam怎么轉(zhuǎn)String

    面了一位實(shí)習(xí)生,叫他給我說(shuō)一下怎么把InputStream轉(zhuǎn)換為String,這種常規(guī)的操作,他竟然都沒(méi)有用過(guò)我準(zhǔn)備結(jié)合工作經(jīng)驗(yàn),整理匯集出了InputStream 到String 轉(zhuǎn)換的十八般武藝,助大家闖蕩 Java 江湖一臂之力,需要的朋友可以參考下
    2021-06-06
  • Java數(shù)據(jù)結(jié)構(gòu)之常見(jiàn)排序算法(上)

    Java數(shù)據(jù)結(jié)構(gòu)之常見(jiàn)排序算法(上)

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之常見(jiàn)排序算法,本文章是匯總篇,且對(duì)每個(gè)排序都進(jìn)行了說(shuō)明,可以很好的理清思路,對(duì)排序算法有個(gè)總體的框架,需要的朋友可以參考下
    2023-01-01
  • Mybatis-Plus的條件構(gòu)造器QueryWrapper & UpdateWrapper示例詳解

    Mybatis-Plus的條件構(gòu)造器QueryWrapper & UpdateWrapper示例詳解

    Mybatis-Plus的條件構(gòu)造器QueryWrapper和UpdateWrapper為開(kāi)發(fā)者提供了強(qiáng)大、靈活的條件構(gòu)建工具,能夠大大簡(jiǎn)化數(shù)據(jù)庫(kù)操作的代碼,通過(guò)本文的介紹,讀者可以更加深入地理解這兩個(gè)條件構(gòu)造器的使用方法,并在實(shí)際項(xiàng)目中靈活應(yīng)用,感興趣的朋友跟隨小編一起看看吧
    2024-01-01

最新評(píng)論

太保市| 宝坻区| 丹寨县| 克东县| 郓城县| 云浮市| 兴宁市| 临洮县| 景东| 和平区| 娄烦县| 综艺| 岫岩| 威远县| 韶关市| 上蔡县| 安庆市| 武强县| 天峻县| 大方县| 新郑市| 玉屏| 那坡县| 新蔡县| 新疆| 阜新| 鄄城县| 湟中县| 阜宁县| 开远市| 泗洪县| 景洪市| 涞水县| 井研县| 东辽县| 曲松县| 赤城县| 曲水县| 深圳市| 文化| 黑河市|