亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringCloud集成Hystrix熔斷過程分步分解

 更新時間:2022年09月28日 09:26:39   作者:Echoo2787  
通過hystrix可以解決雪崩效應(yīng)問題,它提供了資源隔離、降級機(jī)制、融斷、緩存等功能。接下來通過本文給大家分享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;
    }
}

異常熔斷測試

其中一個服務(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;
    }
}

訪問結(jié)果:

超時熔斷測試

全局

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

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

在這里插入代碼片

其中一個接口睡眠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;
    }
}

訪問結(jié)果:

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

另一個正常

單個接口

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

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

增加一個路徑為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;
    }
}

測試結(jié)果:

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

一個正常返回

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

相關(guān)文章

  • idea在用Mybatis時xml文件sql不提示解決辦法(提示后背景顏色去除)

    idea在用Mybatis時xml文件sql不提示解決辦法(提示后背景顏色去除)

    mybatis的xml文件配置的時候,有時候會沒有提示,這讓我們很頭疼,下面這篇文章主要給大家介紹了關(guān)于idea在用Mybatis時xml文件sql不提示的解決辦法,提示后背景顏色去除的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 深入解析@InitBinder注解的功能與應(yīng)用

    深入解析@InitBinder注解的功能與應(yīng)用

    這篇文章主要介紹了深入解析@InitBinder注解的功能與應(yīng)用,從字面意思可以看出這個的作用是給Binder做初始化的,被此注解的方法可以對WebDataBinder初始化,webDataBinder是用于表單到方法的數(shù)據(jù)綁定的,需要的朋友可以參考下
    2023-10-10
  • 基于Java實(shí)現(xiàn)簡單貪吃蛇游戲

    基于Java實(shí)現(xiàn)簡單貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了基于Java實(shí)現(xiàn)簡單貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • mybatis?實(shí)體類字段大小寫問題?字段獲取不到值的解決

    mybatis?實(shí)體類字段大小寫問題?字段獲取不到值的解決

    這篇文章主要介紹了mybatis?實(shí)體類字段大小寫問題?字段獲取不到值的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java 分行讀取實(shí)例

    java 分行讀取實(shí)例

    今天小編就為大家分享一篇java 分行讀取實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決

    IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決

    這篇文章主要介紹了IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java構(gòu)造方法的作用總結(jié)

    java構(gòu)造方法的作用總結(jié)

    在本篇文章里小編給大家整理了關(guān)于java構(gòu)造方法的相關(guān)知識點(diǎn)以及實(shí)例代碼,有需要的朋友們可以學(xué)習(xí)下。
    2019-07-07
  • 自己寫的簡易版Java日志類分享

    自己寫的簡易版Java日志類分享

    這篇文章主要介紹了自己寫的簡易版Java日志類分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • Java設(shè)計模式之策略模式定義與用法詳解

    Java設(shè)計模式之策略模式定義與用法詳解

    這篇文章主要介紹了Java設(shè)計模式之策略模式定義與用法,結(jié)合具體實(shí)例形式詳細(xì)分析了Java策略模式的概念、原理、定義及相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • Java中BigInteger類的使用方法詳解(全網(wǎng)最新)

    Java中BigInteger類的使用方法詳解(全網(wǎng)最新)

    這篇文章主要介紹了Java中BigInteger類的使用方法詳解,常用最全系列,本章作為筆記使用,內(nèi)容比較全面,但常用的只有:構(gòu)造函數(shù),基本運(yùn)算以及compareTo(),intValue(),setBit(),testBit()方法,需要的朋友可以參考下
    2023-05-05

最新評論