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

spring cloud gateway集成hystrix全局?jǐn)嗦菲鞑僮?/h1>
 更新時間:2021年07月17日 10:06:30   作者:草寶蟲  
這篇文章主要介紹了spring cloud gateway集成hystrix全局?jǐn)嗦菲鞑僮?,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

gateway集成hystrix全局?jǐn)嗦菲?/h2>

pom.xml添加依賴

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

在配置文件中,增加spring.cloud.gateway.default-filters:

default-filters:
- name: Hystrix
  args:
    name: fallbackcmd
    fallbackUri: forward:/fallbackcontroller

一定要注意是spring.cloud.gateway.default-filters這個配置節(jié)。

如上的配置,將會使用HystrixCommand打包剩余的過濾器,并命名為fallbackcmd,我們還配置了可選的參數(shù)fallbackUri,降級邏輯被調(diào)用,請求將會被轉(zhuǎn)發(fā)到URI為/fallbackcontroller的控制器處理。

定義降級處理如下:

@RequestMapping(value = "/fallbackcontroller")
public Map<String, String> fallBackController() {
    Map<String, String> res = new HashMap();
    res.put("code", "-100");
    res.put("data", "service not available");
    return res;
}

此時可以設(shè)置hystrix超時時間(毫秒) ,默認(rèn)只有2秒

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

示例代碼:

https://github.com/wanghongqi/springcloudconsul_test/tree/master/springtest_gateway

spring cloud gateway 全局熔斷

熔斷主要保護(hù)的是調(diào)用方服務(wù),如某A服務(wù)調(diào)用B服務(wù)的rpc接口,突然B服務(wù)接口不穩(wěn)定,表現(xiàn)為接口延遲或者失敗率變大。

這個時候如果對B服務(wù)調(diào)用不能快速失敗,那么會導(dǎo)致A服務(wù)大量線程資源無法釋放導(dǎo)致最終A服務(wù)不穩(wěn)定,故障點由B服務(wù)傳遞到A服務(wù),故障擴大。

熔斷就是在B服務(wù)出現(xiàn)故障的情況下,斷開對B的調(diào)用,通過快速失敗來保證A服務(wù)的穩(wěn)定。

一:Gateway項目maven引入依賴包

Spring Cloud Gateway 利用 Hystrix 的熔斷特性,在流量過大時進(jìn)行服務(wù)降級,同樣我們還是首先給項目添加上依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

二:創(chuàng)建熔斷后轉(zhuǎn)發(fā)的請求

@RestController
public class FallbackController {
    private Logger log= LoggerFactory.getLogger(getClass());
    @RequestMapping("/error/fallback")
    public Object fallacak(){
        log.info("熔斷處理?。?!");
        return "Service Error!?。?;
    }
}

三:yml配置

#全局熔斷攔截器
default-filters:
    - name: Hystrix
      args:
        name: fallbackcmd
        fallbackUri: forward:/error/fallback
    - name: Retry
      args:
        retries: 3
        statuses: BAD_GATEWAY,BAD_REQUEST
        methods: GET,POST

Hystrix是Gateway以封裝好的過濾器。如果不了解請查看:GatwayFilter工廠

name:即HystrixCommand的名字

fallbackUri:forward:/error/fallback 配置了 fallback 時要會調(diào)的路徑,當(dāng)調(diào)用 Hystrix 的 fallback 被調(diào)用時,請求將轉(zhuǎn)發(fā)到/error/fallback 這個 URI

Retry 通過這四個參數(shù)來控制重試機制: retries, statuses, methods, 和 series

retries:重試次數(shù),默認(rèn)值是 3 次

statuses:HTTP 的狀態(tài)返回碼,取值請參考:org.springframework.http.HttpStatus

methods:指定哪些方法的請求需要進(jìn)行重試邏輯,默認(rèn)值是 GET 方法,取值參考:org.springframework.http.HttpMethod

series:一些列的狀態(tài)碼配置,取值參考:org.springframework.http.HttpStatus.Series。符合的某段狀態(tài)碼才會進(jìn)行重試邏輯,默認(rèn)值是 SERVER_ERROR,值是 5,也就是 5XX(5 開頭的狀態(tài)碼),共有5 個值。

# hystrix 信號量隔離,3秒后自動超時
hystrix:
    command:
        fallbackcmd:
            execution:
                isolation:
                    strategy: SEMAPHORE
                    thread:
                        timeoutInMilliseconds: 3000

fallbackcmd 此處需要和上面設(shè)置的HystrixCommand一致

timeoutInMilliseconds 設(shè)置超時時間

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java代碼里如何拼接SQL語句到mybatis的xml

    Java代碼里如何拼接SQL語句到mybatis的xml

    這篇文章主要介紹了Java代碼里拼接SQL語句到mybatis的xml操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java開發(fā)使用BigDecimal避坑四則

    java開發(fā)使用BigDecimal避坑四則

    這篇文章主要為大家介紹了java開發(fā)使用BigDecimal的避坑四則,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 淺談Mybatis通用Mapper使用方法

    淺談Mybatis通用Mapper使用方法

    本篇文章主要介紹了淺談Mybatis通用Mapper使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • idea版本控制忽略.idea文件和.iml文件的問題

    idea版本控制忽略.idea文件和.iml文件的問題

    這篇文章主要介紹了idea版本控制忽略.idea文件和.iml文件,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java?SimpleDateFormat與System類使用示例詳解

    Java?SimpleDateFormat與System類使用示例詳解

    這篇文章主要介紹了Java?SimpleDateFormat與System類使用示例,對于SimpleDateFormat類,是一個用來區(qū)分區(qū)域設(shè)置的方式進(jìn)行日期的是指,以及對日期進(jìn)行處理分析的一個實現(xiàn)類
    2022-11-11
  • Spring使用@Filter注解創(chuàng)建自定義過濾器

    Spring使用@Filter注解創(chuàng)建自定義過濾器

    Spring 中鮮為人知但非常有用的注解之一是 @Filter,它支持自定義過濾器,下面我們就來深入研究一下如何使用 Spring 的 @Filter 注解來創(chuàng)建自定義過濾器吧
    2023-11-11
  • java之阻塞隊列BlockingQueue解析

    java之阻塞隊列BlockingQueue解析

    這篇文章主要介紹了java之阻塞隊列BlockingQueue解析,阻塞隊列是一種線程安全的數(shù)據(jù)結(jié)構(gòu),用于在多線程環(huán)境下進(jìn)行數(shù)據(jù)交換,它提供了一種阻塞的機制,當(dāng)隊列為空時,消費者線程將被阻塞,直到隊列中有數(shù)據(jù)可供消費,需要的朋友可以參考下
    2023-10-10
  • Spring請求路徑帶參數(shù)URL使用注解的寫法說明

    Spring請求路徑帶參數(shù)URL使用注解的寫法說明

    這篇文章主要介紹了Spring請求路徑帶參數(shù)URL使用注解的寫法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java不定參數(shù)使用及一些注意情況

    Java不定參數(shù)使用及一些注意情況

    不定參數(shù)是一種特殊的參數(shù)類型,它允許方法接受可變數(shù)量的參數(shù),本文主要介紹了Java不定參數(shù)使用及一些注意情況,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實例解析

    Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實例解析

    這篇文章主要介紹了Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實例解析的相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10

最新評論

兴海县| 田东县| 英德市| 西林县| 保定市| 云浮市| 益阳市| 崇州市| 平顶山市| 大埔县| 东光县| 天峨县| 青川县| 兴安县| 皮山县| 南阳市| 寿阳县| 米林县| 安阳县| 屯留县| 博罗县| 巴林左旗| 洛川县| 潮安县| 北安市| 六盘水市| 汾西县| 井陉县| 宁津县| 房产| 龙江县| 兴仁县| 孟州市| 元谋县| 奎屯市| 山东| 卫辉市| 华坪县| 宁化县| 盐源县| 大余县|