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

網(wǎng)關(guān)Spring Cloud Gateway HTTP超時(shí)配置問題

 更新時(shí)間:2024年01月10日 16:54:09   作者:lakernote  
這篇文章主要介紹了網(wǎng)關(guān)Spring Cloud Gateway HTTP超時(shí)配置問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

本文Spring Cloud Gateway 版本:2020.0.0

可以為所有路由配置Http超時(shí)(響應(yīng)和連接),并為每個(gè)特定路由覆蓋Http超時(shí)。

1. 全局超時(shí)

要配置全局http超時(shí):

  • connect-timeout必須以毫秒為單位指定。
  • response-timeout必須指定為java.time.Duration

全局http超時(shí)示例

spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 1000
        response-timeout: 5s

2. 每個(gè)路由超時(shí)

要配置每個(gè)路由超時(shí):

  • connect-timeout必須以毫秒為單位指定。
  • response-timeout必須以毫秒為單位指定。

通過配置每個(gè)路由的HTTP超時(shí)

      - id: per_route_timeouts
        uri: https://example.org
        predicates:
          - name: Path
            args:
              pattern: /delay/{timeout}
        metadata:
          response-timeout: 200
          connect-timeout: 200

使用Java DSL的每個(gè)路由超時(shí)配置

import static org.springframework.cloud.gateway.support.RouteMetadataUtils.CONNECT_TIMEOUT_ATTR;
import static org.springframework.cloud.gateway.support.RouteMetadataUtils.RESPONSE_TIMEOUT_ATTR;

      @Bean
      public RouteLocator customRouteLocator(RouteLocatorBuilder routeBuilder){
         return routeBuilder.routes()
               .route("test1", r -> {
                  return r.host("*.somehost.org").and().path("/somepath")
                        .filters(f -> f.addRequestHeader("header1", "header-value-1"))
                        .uri("http://someuri")
                        .metadata(RESPONSE_TIMEOUT_ATTR, 200)
                        .metadata(CONNECT_TIMEOUT_ATTR, 200);
               })
               .build();
      }

3. Fluent Java Routes API

為了在Java中進(jìn)行簡單的配置,該RouteLocatorBuilderbean包含了一個(gè)流暢的API。

以下清單顯示了它的工作方式:

// static imports from GatewayFilters and RoutePredicates
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder, ThrottleGatewayFilterFactory throttle) {
    return builder.routes()
            .route(r -> r.host("**.abc.org").and().path("/image/png")
                .filters(f ->
                        f.addResponseHeader("X-TestHeader", "foobar"))
                .uri("http://httpbin.org:80")
            )
            .route(r -> r.path("/image/webp")
                .filters(f ->
                        f.addResponseHeader("X-AnotherHeader", "baz"))
                .uri("http://httpbin.org:80")
                .metadata("key", "value")
            )
            .route(r -> r.order(-1)
                .host("**.throttle.org").and().path("/get")
                .filters(f -> f.filter(throttle.apply(1,
                        1,
                        10,
                        TimeUnit.SECONDS)))
                .uri("http://httpbin.org:80")
                .metadata("key", "value")
            )
            .build();
}

這種樣式還允許更多自定義謂詞斷言。

RouteDefinitionLocatorbean定義的謂詞使用邏輯組合and。

通過使用流利的Java API,你可以使用and(),or()以及negate()對運(yùn)營Predicate類。

4. DiscoveryClient路由定義定位器

您可以將網(wǎng)關(guān)配置為基于在DiscoveryClient兼容服務(wù)注冊表中注冊的服務(wù)來創(chuàng)建路由。

要啟用此功能,請?jiān)O(shè)置spring.cloud.gateway.discovery.locator.enabled=true并確保DiscoveryClient在類路徑上啟用了某個(gè)實(shí)現(xiàn)(例如Netflix Eureka,Consul或Zookeeper)。

4.1 DiscoveryClient路由配置謂詞和過濾器

默認(rèn)情況下,網(wǎng)關(guān)為使用所創(chuàng)建的路由定義單個(gè)謂詞和過濾器DiscoveryClient。

默認(rèn)謂詞是使用模式定義的路徑謂詞/serviceId/**,其中serviceId是來自的服務(wù)ID DiscoveryClient。

默認(rèn)的過濾器是帶有正則表達(dá)式/serviceId/(?<remaining>.*)和替換的重寫路徑過濾器/${remaining}。這會在將請求發(fā)送到下游之前從路徑中剝離服務(wù)ID。

如果要自定義DiscoveryClient路線使用的謂詞或過濾器,請?jiān)O(shè)置spring.cloud.gateway.discovery.locator.predicates[x]和spring.cloud.gateway.discovery.locator.filters[y]。

這樣做時(shí),如果要保留該功能,則需要確保包括前面顯示的默認(rèn)謂詞和過濾器。

下面的示例顯示其外觀:

spring.cloud.gateway.discovery.locator.predicates[0].name: Path
spring.cloud.gateway.discovery.locator.predicates[0].args[pattern]: "'/'+serviceId+'/**'"
spring.cloud.gateway.discovery.locator.predicates[1].name: Host
spring.cloud.gateway.discovery.locator.predicates[1].args[pattern]: "'**.foo.com'"
spring.cloud.gateway.discovery.locator.filters[0].name: CircuitBreaker
spring.cloud.gateway.discovery.locator.filters[0].args[name]: serviceId
spring.cloud.gateway.discovery.locator.filters[1].name: RewritePath
spring.cloud.gateway.discovery.locator.filters[1].args[regexp]: "'/' + serviceId + '/(?<remaining>.*)'"
spring.cloud.gateway.discovery.locator.filters[1].args[replacement]: "'/${remaining}'"

總結(jié)

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

  • Java 小游戲開發(fā)之俄羅斯方塊

    Java 小游戲開發(fā)之俄羅斯方塊

    這篇文章主要介紹了Java 小游戲開發(fā)之俄羅斯方塊的相關(guān)資料,這里實(shí)現(xiàn)俄羅斯方塊的實(shí)例和實(shí)現(xiàn)效果給大家看下,學(xué)習(xí)java基礎(chǔ)的朋友的好資料,需要的朋友可以參考下
    2017-07-07
  • java 圖片驗(yàn)證碼的實(shí)現(xiàn)代碼

    java 圖片驗(yàn)證碼的實(shí)現(xiàn)代碼

    java 圖片驗(yàn)證碼的實(shí)現(xiàn)代碼,需要的朋友可以參考一下
    2013-05-05
  • SpringBoot數(shù)據(jù)訪問自定義使用Druid數(shù)據(jù)源的方法

    SpringBoot數(shù)據(jù)訪問自定義使用Druid數(shù)據(jù)源的方法

    本文記錄Druid數(shù)據(jù)源的使用,自定義實(shí)現(xiàn)Drud的功能、監(jiān)控頁、登錄、統(tǒng)計(jì)等。對SpringBoot數(shù)據(jù)訪問使用Druid數(shù)據(jù)源的相關(guān)知識感興趣額朋友一起看看吧
    2021-08-08
  • Java設(shè)計(jì)模式之java解釋器模式詳解

    Java設(shè)計(jì)模式之java解釋器模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之解釋器模式定義與用法,結(jié)合具體實(shí)例形式詳細(xì)分析了Java解釋器模式的概念、原理、定義及相關(guān)操作技巧,需要的朋友可以參考下
    2021-09-09
  • 最新IDEA?2022基于JVM極致優(yōu)化?IDEA啟動(dòng)速度的方法

    最新IDEA?2022基于JVM極致優(yōu)化?IDEA啟動(dòng)速度的方法

    這篇文章主要介紹了IDEA?2022最新版?基于?JVM極致優(yōu)化?IDEA?啟動(dòng)速度,需要的朋友可以參考下
    2022-08-08
  • SpringBoot3+ShardingJDBC5.5.0 讀寫分離配置的實(shí)現(xiàn)

    SpringBoot3+ShardingJDBC5.5.0 讀寫分離配置的實(shí)現(xiàn)

    本文主要介紹了SpringBoot3+ShardingJDBC5.5.0 讀寫分離配置的實(shí)現(xiàn),最新版5.5.0支持SpringBoot3x現(xiàn)分享給大家,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • java枚舉轉(zhuǎn)list通用類過程

    java枚舉轉(zhuǎn)list通用類過程

    文章介紹了如何將Java枚舉類型轉(zhuǎn)換為List<Map<String, Object>>的通用類,該類可以實(shí)現(xiàn)枚舉到列表的轉(zhuǎn)換,并且示例了使用方法
    2025-03-03
  • java編程兩種樹形菜單結(jié)構(gòu)的轉(zhuǎn)換代碼

    java編程兩種樹形菜單結(jié)構(gòu)的轉(zhuǎn)換代碼

    這篇文章主要介紹了java編程兩種樹形菜單結(jié)構(gòu)的轉(zhuǎn)換代碼,首先介紹了兩種樹形菜單結(jié)構(gòu)的代碼,然后展示了轉(zhuǎn)換器實(shí)例代碼,最后分享了相關(guān)實(shí)例及結(jié)果演示,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • 使用Springboot實(shí)現(xiàn)健身房管理系統(tǒng)

    使用Springboot實(shí)現(xiàn)健身房管理系統(tǒng)

    這篇文章主要介紹了使用Springboot如何實(shí)現(xiàn)健身房管理系統(tǒng),希望對你有所幫助
    2021-07-07
  • 最新評論