国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【深入解析spring cloud gateway】05 gateway請求轉(zhuǎn)發(fā)實驗

這篇具有很好參考價值的文章主要介紹了【深入解析spring cloud gateway】05 gateway請求轉(zhuǎn)發(fā)實驗。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、環(huán)境準(zhǔn)備

三個工程:
eureka-server
eureka-client
gateway
實驗?zāi)康模和ㄟ^網(wǎng)關(guān)訪問對應(yīng)的微服務(wù):eureka-client。gateway和eureka-client注冊到eureka-server上

二、eureka-server和eureka-client準(zhǔn)備

eureka-server略
eureka-client
application.yml

eureka:
    client:
        serviceUrl:
            defaultZone: http://localhost:8761/eureka/
server:
    port: 8081
spring:
    application:
        name: hello-service

提供一個接口

@RestController
@Slf4j
public class HelloController {
  @RequestMapping("/hello")
  public String hello() {
    return "hello"
  }
}

三、gateway配置

pom.xml

 <dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
</dependencies>

application.yml

server:
  port: 8080
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
    instance:
      instance-id: gateway
      prefer-ip-address: true
---
spring:
  application:
    name: gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true #開啟自動路由功能,根據(jù)服務(wù)名稱自動創(chuàng)建routes
          lower-case-service-id: true #識別小寫服務(wù)名

定義一個filter用于去掉路徑中的/gateway

@Configuration(proxyBeanMethods = false)
public class FilterConfig {
    @Bean    public RemovePathFilter removePathFilter() {
        return new RemovePathFilter();    }
}

自定義一個GlobalFilter,用于去掉路徑/gateway/

@Slf4j
public class RemovePathFilter implements GlobalFilter, Ordered {

    private static final String PREFIX = "/gateway/";

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        log.info("刪除api前綴");
        ServerHttpRequest req = exchange.getRequest();

        addOriginalRequestUrl(exchange, req.getURI());
        String path = req.getURI().getRawPath();
        if (path.contains(PREFIX)) {
            String newPath = path.replace(PREFIX, "/");
            req = req.mutate().path(newPath).build();
            exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, req.getURI());
        }
        return chain.filter(exchange.mutate().request(req).build());
    }

    @Override
    public int getOrder() {
        return 0;
    }
}

請求示例
通過訪問 http://localhost:8080/hello-service/gateway/hello網(wǎng)關(guān)地址,可以正確請求到eureka-client的接口

C:\Users\Administrator>curl -X GET http://localhost:8080/hello-service/gateway/hello
hello

四、總結(jié)

1、gateway通過服務(wù)發(fā)現(xiàn),將請求/hello-service/gateway/hello轉(zhuǎn)發(fā)到hello-service上
2、自定義一個GlobalFilter,用于去掉路徑/gateway/路徑
項目源碼地址文章來源地址http://www.zghlxwxcb.cn/news/detail-695681.html

到了這里,關(guān)于【深入解析spring cloud gateway】05 gateway請求轉(zhuǎn)發(fā)實驗的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【深入解析spring cloud gateway】08 Reactor 知識掃盲

    【深入解析spring cloud gateway】08 Reactor 知識掃盲

    1.1 背景知識 為了應(yīng)對高并發(fā)服務(wù)器端開發(fā)場景,在2009 年,微軟提出了一個更優(yōu)雅地實現(xiàn)異步編程的方式——Reactive Programming,我們稱之為響應(yīng)式編程。隨后,Netflix 和LightBend 公司提供了RxJava 和Akka Stream 等技術(shù),使得Java 平臺也有了能夠?qū)崿F(xiàn)響應(yīng)式編程的框架。 在2017 年9 月

    2024年02月09日
    瀏覽(14)
  • 【深入解析spring cloud gateway】07 自定義異常返回報文

    【深入解析spring cloud gateway】07 自定義異常返回報文

    Servlet的HttpResponse對象,返回響應(yīng)報文,一般是這么寫的,通過輸出流直接就可以將返回報文輸出。 在filter中如果發(fā)生異常(例如請求參數(shù)不合法),拋出異常信息的時候,調(diào)用方收到的返回碼和body都是Spring Cloud Gateway框架處理來處理的。這一節(jié)我們分析一下,gateway的異常返

    2024年02月10日
    瀏覽(26)
  • 三分鐘了解Spring Cloud Gateway路由轉(zhuǎn)發(fā)之自動路由

    三分鐘了解Spring Cloud Gateway路由轉(zhuǎn)發(fā)之自動路由

    大家好,我是冰點,今天和大家分享一下關(guān)于Spring Cloud Gateway 利用服務(wù)注冊與發(fā)現(xiàn)實現(xiàn)自動路由的原理和源碼解讀。希望對大家有所幫助。 今天有個新同學(xué),問我 為什么我們的網(wǎng)關(guān)服務(wù)Spring Cloud Gateway,沒有配置路由就可以將請求到路由服務(wù) ,說他們之前的項目的網(wǎng)關(guān)是將

    2024年02月08日
    瀏覽(17)
  • spring cloud gateway自定義負(fù)載均衡, 優(yōu)先轉(zhuǎn)發(fā)到指定IP

    示例為優(yōu)先將請求分配到指定IP, 如果指定IP沒有服務(wù), 則隨機(jī)分配. GatewayLoadBalancerConfiguration.java 掛載配置類, 可以通過 @org.springframework.boot.autoconfigure.condition.ConditionalOnXXX 或者 @Profile 注解或者@ComponentScan過濾等方式來配置是否啟用 在任意一個@Configuration注解的類上配置均可 L

    2024年02月07日
    瀏覽(22)
  • 【Spring Cloud】網(wǎng)關(guān)Gateway的請求過濾工廠RequestRateLimiterGatewayFilterFactory

    【Spring Cloud】網(wǎng)關(guān)Gateway的請求過濾工廠RequestRateLimiterGatewayFilterFactory

    ??????? 關(guān)于微服務(wù)網(wǎng)關(guān)Gateway中有幾十種過濾工廠,這一篇博文記錄的是關(guān)于請求限流過濾工廠,也就是標(biāo)題中的RequestRateLimiterGatewayFilterFactory。這個路由過濾工廠是 用來判斷當(dāng)前請求是否應(yīng)該被處理,如果不會被處理就會返回HTTP狀態(tài)碼為429的code 。接下來構(gòu)建兩個模塊,

    2024年02月07日
    瀏覽(17)
  • Spring-Cloud-Gateway修改請求(json,form帶文件請求)參數(shù),返回值參數(shù)

    新項目需要在getway統(tǒng)一做入?yún)?、出參加解密,記錄日志。記錄一下form,x-www-form-urlencoded , json 這幾種修改數(shù)據(jù)的方式。 gateway做攔截器是實現(xiàn)GlobalFilter接口,修改json方式網(wǎng)上有很多文章,后來又想研究研究能不能實現(xiàn)修改form-data參數(shù),以及文件請求,后者文章不多大部分是怎

    2024年02月16日
    瀏覽(28)
  • 從Spring Cloud Gateway過濾器中獲取請求體的最優(yōu)方案

    在spring cloud gateway出現(xiàn)這個問題的時候我們第一反應(yīng)應(yīng)該很簡單,但是真正實現(xiàn)的時候卻有點困難。我看了很多相關(guān)的文檔,感覺太多都不清晰而且解決不了問題。下面我就把我的方便理解的解決方案寫下來。 1. 先重寫請求體(過濾器優(yōu)先級一定要在要獲取body之前執(zhí)行) 這

    2024年02月16日
    瀏覽(22)
  • 【Spring Cloud】深入探索統(tǒng)一網(wǎng)關(guān) Gateway 的搭建,斷言工廠,過濾器工廠,全局過濾器以及跨域問題

    【Spring Cloud】深入探索統(tǒng)一網(wǎng)關(guān) Gateway 的搭建,斷言工廠,過濾器工廠,全局過濾器以及跨域問題

    在微服務(wù)架構(gòu)中,網(wǎng)關(guān)是至關(guān)重要的組件,具有多重職責(zé),為整個系統(tǒng)提供了一系列關(guān)鍵功能。從下面的微服務(wù)結(jié)構(gòu)圖中,我們可以明確網(wǎng)關(guān)的幾項主要作用: 微服務(wù)結(jié)構(gòu)圖: 請求過濾與安全: 用戶的所有請求首先經(jīng)過網(wǎng)關(guān),這使得網(wǎng)關(guān)成為系統(tǒng)的第一道防線。通過對傳入

    2024年02月07日
    瀏覽(23)
  • Spring Colud gateway 網(wǎng)關(guān)引入轉(zhuǎn)發(fā)無效 (404)

    跟著大佬們的文章,想玩一下gateway api網(wǎng)關(guān)。經(jīng)過一系列ctrl+c和ctrl+v的操作,項目的基本就搭建好了; 1.引入依賴 pom.xml 2.創(chuàng)建啟動類 前期沒有配置spieng.cloud.gateway.enabled=true,測試網(wǎng)關(guān)一直到報404,看了很多大佬debug,不明所以,最后發(fā)現(xiàn)是這邊配置沒有加,而是配置一個spie

    2024年02月16日
    瀏覽(18)
  • spring cloud gateway中出現(xiàn)503 spring cloud gateway中出現(xiàn)503

    當(dāng)搭建網(wǎng)關(guān)模塊的時候出現(xiàn)503的錯誤的最大的可能就是沒有設(shè)置負(fù)載均衡的依賴包 ?原先搭建的時候采用的是下面的方式進(jìn)行設(shè)置的 上面的這種方式可以直接進(jìn)行注冊和發(fā)現(xiàn),但是要求必須導(dǎo)入下面的依賴 希望簡單的隨筆能夠幫助你!

    2024年02月11日
    瀏覽(88)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包