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

網(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à)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

本文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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中PropertyDescriptor的用法及說明

    Java中PropertyDescriptor的用法及說明

    這篇文章主要介紹了Java中PropertyDescriptor的用法及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • maven倉庫中心mirrors配置多個(gè)下載中心(執(zhí)行最快的鏡像)

    maven倉庫中心mirrors配置多個(gè)下載中心(執(zhí)行最快的鏡像)

    這篇文章主要介紹了maven倉庫中心mirrors配置多個(gè)下載中心(執(zhí)行最快的鏡像),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java 按行讀取文件并輸出到控制臺的方法

    java 按行讀取文件并輸出到控制臺的方法

    今天小編就為大家分享一篇java 按行讀取文件并輸出到控制臺的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解 JAVA的回調(diào)機(jī)制CallBack

    詳解 JAVA的回調(diào)機(jī)制CallBack

    最近學(xué)習(xí)java,接觸到了回調(diào)機(jī)制(CallBack)。初識時(shí)感覺比較混亂,而且在網(wǎng)上搜索到的相關(guān)的講解,要么一言帶過,要么說的比較單純的像是給CallBack做了一個(gè)定義,本文給大家介紹JAVA的回調(diào)機(jī)制CallBack,感興趣的朋友一起學(xué)習(xí)
    2016-04-04
  • springboot集成opencv實(shí)現(xiàn)人臉識別功能的詳細(xì)步驟

    springboot集成opencv實(shí)現(xiàn)人臉識別功能的詳細(xì)步驟

    大家都知道OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上今天通過本文給大家分享springboot集成opencv實(shí)現(xiàn)人臉識別,感興趣的朋友一起看看吧
    2021-06-06
  • java ZipFile如何將多級目錄壓縮

    java ZipFile如何將多級目錄壓縮

    這篇文章主要介紹了java ZipFile如何將多級目錄壓縮問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java面試之如何獲取客戶端真實(shí)IP

    Java面試之如何獲取客戶端真實(shí)IP

    這篇文章主要給大家介紹了關(guān)于Java面試之如何獲取客戶端真實(shí)IP的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • java實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符及子字符串個(gè)數(shù)的方法示例

    java實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符及子字符串個(gè)數(shù)的方法示例

    這篇文章主要介紹了java實(shí)現(xiàn)統(tǒng)計(jì)字符串中字符及子字符串個(gè)數(shù)的方法,涉及java針對字符串的遍歷、判斷及運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • IDEA部署JavaWeb項(xiàng)目到Tomcat服務(wù)器的方法

    IDEA部署JavaWeb項(xiàng)目到Tomcat服務(wù)器的方法

    這篇文章主要介紹了IDEA部署JavaWeb項(xiàng)目到Tomcat服務(wù)器的方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-06-06
  • 有關(guān)Java中的BeanInfo介紹

    有關(guān)Java中的BeanInfo介紹

    Java的BeanInfo在工作中并不怎么用到,我也是在學(xué)習(xí)spring源碼的時(shí)候,發(fā)現(xiàn)SpringBoot啟動時(shí)候會設(shè)置一個(gè)屬叫"spring.beaninfo.ignore",網(wǎng)上一些地方說這個(gè)配置的意思是是否跳過java BeanInfo的搜索,但是BeanInfo又是什么呢?本文我們將對此做一個(gè)詳細(xì)介紹
    2021-09-09

最新評論

磐安县| 高安市| 石台县| 周至县| 长乐市| 哈巴河县| 海晏县| 长寿区| 鄂尔多斯市| 崇文区| 平昌县| 砀山县| 镇安县| 昔阳县| 吴旗县| 金山区| 平阳县| 绥江县| 柳州市| 喀喇沁旗| 宁强县| 福海县| 桦川县| 抚顺县| 鲁山县| 长葛市| 灵宝市| 余姚市| 安国市| 正阳县| 鄂伦春自治旗| 郎溪县| 山西省| 中西区| 金堂县| 福安市| 车致| 广灵县| 新邵县| 和平区| 谢通门县|