真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么

本篇內(nèi)容主要講解“Spring Cloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Spring Cloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么”吧!

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出瀘溪免費(fèi)做網(wǎng)站回饋大家。

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

前面兩篇文章中,fallbackMethod所描述的函數(shù)實(shí)際上就是一個(gè)備胎,用來(lái)實(shí)現(xiàn)服務(wù)的降級(jí)處理,在注解中我們可以通過fallbackMethod屬性來(lái)指定降級(jí)處理的方法名稱,在自定義Hystrix請(qǐng)求命令時(shí)我們可以通過重寫getFallback函數(shù)來(lái)處理服務(wù)降級(jí)之后的邏輯。使用注解來(lái)定義服務(wù)降級(jí)邏輯時(shí),服務(wù)降級(jí)函數(shù)和@HystrixCommand注解要處于同一個(gè)類中,同時(shí),服務(wù)降級(jí)函數(shù)在執(zhí)行過程中也有可能發(fā)生異常,所以也可以給服務(wù)降級(jí)函數(shù)添加‘備胎’,如下:

@HystrixCommand(fallbackMethod = "error1")
public Book test2() {
    return restTemplate.getForObject("http://HELLO-SERVICE/getbook1", Book.class);
}

@HystrixCommand(fallbackMethod = "error2")
public Book error1() {
    //發(fā)起某個(gè)網(wǎng)絡(luò)請(qǐng)求(可能失敗)
    return null;
}
public Book error2() {
    return new Book();
}

在實(shí)際開發(fā)中,并不是所有的請(qǐng)求都要提前預(yù)備好服務(wù)降級(jí)問題,如果我就是要將服務(wù)調(diào)用失敗的信息展示給用戶,那么此時(shí)就沒有必要添加斷路器了。

異常處理

我們?cè)谡{(diào)用服務(wù)提供者時(shí)有可能會(huì)拋異常,默認(rèn)情況下方法拋了異常會(huì)自動(dòng)進(jìn)行服務(wù)降級(jí),交給服務(wù)降級(jí)中的方法去處理,在自定義Hystrix請(qǐng)求命令的方式下,我們可以在getFallback方法中調(diào)用getExecutionException方法來(lái)獲取拋出的異常,舉個(gè)簡(jiǎn)單的例子:

@Override
protected Book getFallback() {
    Throwable executionException = getExecutionException();
    System.out.println(executionException.getMessage());
    return new Book("宋詩(shī)選注", 88, "錢鐘書", "三聯(lián)書店");
}

@Override
protected Book run() throws Exception {
    int i = 1 / 0;
    return restTemplate.getForObject("http://HELLO-SERVICE/getbook1", Book.class);
}

此時(shí)訪問結(jié)果如下:

Spring Cloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么  

控制臺(tái)打印的日志如下:

Spring Cloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么  

自動(dòng)進(jìn)行了服務(wù)降級(jí)。

如果我們采用了注解的方式,只需要在服務(wù)降級(jí)方法中添加一個(gè)Throwable類型的參數(shù)就能夠獲取到拋出的異常的類型,如下:

@HystrixCommand(fallbackMethod = "error1")
public Book test2() {
    int i = 1 / 0;
    return restTemplate.getForObject("http://HELLO-SERVICE/getbook1", Book.class);
}

public Book error1(Throwable throwable) {
    System.out.println(throwable.getMessage());
    return new Book("百年孤獨(dú)", 33, "馬爾克斯", "人民文學(xué)出版社");
}

Spring Cloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么  

控制臺(tái)打印的日志也是/ by zero,我就不再貼圖片了。此時(shí),如果有一個(gè)異常拋出后我不希望進(jìn)入到服務(wù)降級(jí)方法中去處理,而是直接將異常拋給用戶,那么我們可以在@HystrixCommand注解中添加忽略異常,如下:

@HystrixCommand(fallbackMethod = "error1",ignoreExceptions = ArithmeticException.class)
public Book test2() {
    int i = 1 / 0;
    return restTemplate.getForObject("http://HELLO-SERVICE/getbook1", Book.class);
}

public Book error1(Throwable throwable) {
    System.out.println(throwable.getMessage());
    return new Book("百年孤獨(dú)", 33, "馬爾克斯", "人民文學(xué)出版社");
}

此時(shí)執(zhí)行結(jié)果如下:

Spring Cloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么  

這里的實(shí)現(xiàn)原理很簡(jiǎn)單,因?yàn)橛幸粋€(gè)名叫HystrixBadRequestException的異常不會(huì)進(jìn)入到服務(wù)降級(jí)方法中去,當(dāng)我們定義了ignoreExceptions為ArithmeticException.class之后,當(dāng)拋出ArithmeticException異常時(shí),Hystrix會(huì)將異常信息包裝在HystrixBadRequestException里邊然后再拋出,此時(shí)就不會(huì)觸發(fā)服務(wù)降級(jí)方法了。

到此,相信大家對(duì)“Spring Cloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


新聞標(biāo)題:SpringCloud中Hystrix服務(wù)降級(jí)與異常處理的方法是什么
網(wǎng)頁(yè)路徑:http://weahome.cn/article/gcpjgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部