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

如何使用spring gateway微服務(wù)網(wǎng)關(guān)(基本用法)

 更新時間:2024年08月28日 11:20:57   作者:stars  
本文介紹spring gateway的使用,包括配置文件的使用和調(diào)試跟蹤,讓大家了解spring gateway的基本用法,感興趣的朋友跟隨小編一起看看吧

本文介紹spring gateway的使用,包括配置文件的使用和調(diào)試跟蹤,讓大家了解spring gateway的基本用法。如果不了解什么是微服務(wù)網(wǎng)關(guān),就先查查資料,網(wǎng)關(guān)相對來說是比較重要的微服務(wù)組件。

0、環(huán)境

  • springboot 2.4.2
  • springcloud gateway 3.0.1
  • jdk 1.8

1、創(chuàng)建微服務(wù)網(wǎng)關(guān)

兩個服務(wù),一個是網(wǎng)關(guān),另一個是普通服務(wù)。網(wǎng)關(guān)用來轉(zhuǎn)發(fā)請求,普通服務(wù)用來處理對應(yīng)的請求。項目結(jié)構(gòu)如下圖:

下面咱們一起構(gòu)造這個項目。先創(chuàng)建gateway項目,就是普通maven項目。

1.1、添加依賴

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-gateway</artifactId>
   <version>3.0.1</version>
</dependency>

1.2、添加配置文件

創(chuàng)建application.yml文件,并添加如下配置:

server:
  port: 9080
spring:
  application:
    name: gateway-sample
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: gateway-02
          uri: http://localhost:9081          #匹配后提供服務(wù)的路由地址
          predicates:
            - Path=/sample/service1/say/**         # 斷言,路徑相匹配的進行路由
          filters:
            - StripPrefix=2

說明:

  • uri:說明要跳轉(zhuǎn)的uri地址
  • StripPrefix:指定要從源地址截取的個數(shù),以“/“為分隔符。以地址欄輸入“http://localhost:8080/sample/service1/say/** ”為例,域名部分不計,那就是從sample/service1/say/** 計算,StripPrefix=2,表示從前截取兩個”/”,那么結(jié)構(gòu)就是:/say/**,你的服務(wù)必須對應(yīng)這個uri,否則會出現(xiàn)404。
  • id:隨便寫,保持和其他服務(wù)不同就是了

1.3、啟動

springboot啟動類就不多說了吧,啟動只要沒有出錯就算是正常。這里唯一要注意的是pom文件里不能引入springboot web依賴,一旦引入啟動時就報錯。大家注意觀察,我們啟動gateway時,是netty而不是tomcat。

2、service1 服務(wù)編寫

service1服務(wù)屬于普通服務(wù),按照普通springboot服務(wù)創(chuàng)建就行。這里注意端口保持和gateway不一樣,我這里用9081。注意pom.xml要引入springboot web的依賴。在這里貼出controller的代碼:

@RestController
@RequestMapping("/say")
public class SomethingToSay {
    @GetMapping("/hello")
    public String sayHello() {
        return "hello";
    }
    @GetMapping("/hi")
    public String sayHi() {
        return "hi";
    }
    @GetMapping("/ohh")
    public String sayOhh() {
        return "ohh";
    }
}

好了,一個帶網(wǎng)關(guān)的微服務(wù)就開發(fā)完成了。通關(guān)網(wǎng)關(guān)uri做一下測試。
http://localhost:9080/sample/service1/say/hello,看結(jié)果若是返回了hello表示正常。

3、排錯

在通過網(wǎng)關(guān)調(diào)用后端服務(wù)時,出現(xiàn)404,大部分情況都是手抖了,輸錯了uri,但是大部分同學(xué)又排查不細心,認為是gateway的問題,在這里我?guī)Т蠹覍憘€全局Filter,首先確認請求已經(jīng)到了gateway,如果請求連gateway都沒到,那肯定是uri輸入錯誤。這個Filter寫在gateway模塊里,代碼如下:

@Component
public class MyGlobalFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        System.out.println("服務(wù)調(diào)用請求:" + exchange.getRequest().getURI());
        return chain.filter(exchange).then(Mono.fromRunnable(() ->
                System.out.println("服務(wù)調(diào)用返回了," + exchange.getResponse().getStatusCode())));
    }
    @Override
    public int getOrder() {
        return 0;
    }
}

效果如圖:

OK,一個簡單的網(wǎng)關(guān)就開發(fā)完成了。

到此這篇關(guān)于如何使用gateway作為微服務(wù)網(wǎng)關(guān)的文章就介紹到這了,更多相關(guān)gateway微服務(wù)網(wǎng)關(guān)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java TreeUtil菜單遞歸工具類

    java TreeUtil菜單遞歸工具類

    這篇文章主要為大家詳細介紹了java TreeUtil菜單遞歸工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 深入理解Java中的IOUtils(示例演示)

    深入理解Java中的IOUtils(示例演示)

    Java中的IOUtils是一個工具類,用于簡化文件和流的操作,它提供了一些常用的方法,如復(fù)制文件、讀取文件、寫入文件等,這篇文章主要介紹了深入理解Java中的IOUtils(示例演示),需要的朋友可以參考下
    2023-08-08
  • Java反射機制及Method.invoke詳解

    Java反射機制及Method.invoke詳解

    這篇文章主要介紹了Java反射機制及Method.invoke詳解,本文講解了JAVA反射機制、得到某個對象的屬性、得到某個類的靜態(tài)屬性、執(zhí)行某對象的方法、執(zhí)行某個類的靜態(tài)方法等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 圖文示例詳解Lucene數(shù)據(jù)模型查詢原理

    圖文示例詳解Lucene數(shù)據(jù)模型查詢原理

    這篇文章主要為大家通過圖文示例詳解Lucene數(shù)據(jù)模型查詢原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Java中的jinfo命令使用詳解

    Java中的jinfo命令使用詳解

    jinfo是JDK提供的一個可以實時查看Java虛擬機各種配置參數(shù)和系統(tǒng)屬性的命令行工具,本文給大家介紹下Java中的jinfo命令使用,感興趣的朋友一起看看吧
    2022-03-03
  • Java編程實現(xiàn)統(tǒng)計一個字符串中各個字符出現(xiàn)次數(shù)的方法

    Java編程實現(xiàn)統(tǒng)計一個字符串中各個字符出現(xiàn)次數(shù)的方法

    這篇文章主要介紹了Java編程實現(xiàn)統(tǒng)計一個字符串中各個字符出現(xiàn)次數(shù)的方法,涉及java針對字符串的遍歷、判斷、運算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • SpringBoot整合Redis的示例

    SpringBoot整合Redis的示例

    這篇文章主要介紹了SpringBoot整合Redis的示例,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-10-10
  • JAVA 集合框架Map 接口的深度解析與實戰(zhàn)指南

    JAVA 集合框架Map 接口的深度解析與實戰(zhàn)指南

    文章主要介紹了Map接口及其常用實現(xiàn)類(HashMap、LinkedHashMap、TreeMap)的核心特性、底層原理和適用場景,詳細講解了HashMap的哈希表結(jié)構(gòu)、鏈表和紅黑樹處理、線程不安全性及自定義Key注意事項,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • java生成隨機數(shù)的常用方法分析

    java生成隨機數(shù)的常用方法分析

    這篇文章主要介紹了java生成隨機數(shù)的常用方法,結(jié)合實例形式分析了java生成隨機數(shù)常用的方法功能與相關(guān)使用技巧,需要的朋友可以參考下
    2017-10-10
  • Java泛型<T> T與T的使用方法詳解

    Java泛型<T> T與T的使用方法詳解

    這篇文章主要介紹了Java泛型<T> T與T的使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07

最新評論

迁西县| 大庆市| 乐至县| 邵阳市| 新闻| 泰安市| 怀远县| 资溪县| 大庆市| 大同市| 通州区| 巴彦淖尔市| 彝良县| 通渭县| 桂平市| 闽清县| 鄂托克前旗| 萍乡市| 原阳县| 德惠市| 丹棱县| 佛冈县| 武义县| 海南省| 昭平县| 北辰区| 建平县| 奉新县| 尤溪县| 灯塔市| 鹤山市| 中宁县| 龙川县| 工布江达县| 新密市| 开阳县| 涪陵区| 从化市| 乌审旗| 海原县| 昌乐县|