Spring Cloud Gateway的配置與使用教程
Gateway其實(shí)是springcloud 原生的東西,但是我還是想放在這里講,因?yàn)槲覀兪褂胣acos時(shí),前端調(diào)用服務(wù)之后,一般會(huì)調(diào)用到我們的網(wǎng)關(guān)上面,然后網(wǎng)關(guān)選擇我們的nacos服務(wù),再調(diào)用后端的服務(wù)
在當(dāng)今微服務(wù)架構(gòu)中,網(wǎng)關(guān)起著至關(guān)重要的角色。它充當(dāng)著應(yīng)用程序和外部世界之間的門(mén)戶(hù),處理來(lái)自客戶(hù)端的請(qǐng)求并將其轉(zhuǎn)發(fā)到適當(dāng)?shù)奈⒎?wù)。而Spring Cloud Gateway作為Spring Cloud生態(tài)系統(tǒng)中的一員,為我們提供了一個(gè)強(qiáng)大而靈活的網(wǎng)關(guān)解決方案。本文將深入探討Spring Cloud Gateway的配置與使用,幫助讀者更好地理解并應(yīng)用這個(gè)優(yōu)秀的網(wǎng)關(guān)工具。
??第一步,創(chuàng)建一個(gè)springboot工程
??第二步,添加依賴(lài)
<properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR6</spring-cloud.version> <spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
??第三步,編寫(xiě)yml文件
spring: cloud: nacos: discovery: server-addr: 192.168.0.93:8848 gateway: routes: - id: service-provider uri: lb://service-provider predicates: - Path=/provider/** #以provider開(kāi)頭的請(qǐng)求都負(fù)載到provider服務(wù) filters: - RewritePath=/provider/(?<segment>.*), /$\{segment} #過(guò)濾掉url里的provider,例如http://ip:port/provider/getCity -> http://ip:port/getCity application: name: gateway server: port: 8999
解讀配置文件:
- RewritePath:過(guò)濾掉url里的provider,例如http://ip:port/provider/getCity -> http://ip:port/getCity
- Path:以provider開(kāi)頭的請(qǐng)求都負(fù)載到provider服務(wù)
- id:route的唯一id
- uri:需要返回的nacos中間的服務(wù)
這是我們的nacos控制臺(tái),里面有一個(gè)service-provider服務(wù),他負(fù)責(zé)提供api
所以yml里面的routes我們配置uri為lb://service-provider
假如前端要訪(fǎng)問(wèn)我們的服務(wù),他只需要訪(fǎng)問(wèn)http://localhost:8999/provider
就好,他是以provider
開(kāi)頭,所以Path這里我們配置為- Path=/provider/**
但是我們服務(wù)提供者提供的api為/echo/{string}
,所以我們需要去掉provider
,因此RewritePath配置為/provider/(?<segment>.*), /$\{segment}
??第四步,啟動(dòng)主啟動(dòng)類(lèi)
之后網(wǎng)關(guān)服務(wù)就會(huì)被注冊(cè)到nacos中
然后就可以通過(guò)我們的gateway服務(wù)訪(fǎng)問(wèn)我們nacos中的服務(wù)了
提供者提供的api如下
官網(wǎng):https://spring.io/projects/spring-cloud-gateway
倉(cāng)庫(kù)地址:https://gitee.com/WangFuGui-Ma/spring-cloud-alibaba/tree/master
通過(guò)本文的介紹,我們了解了Spring Cloud Gateway的核心概念和基本配置。它的靈活性和可擴(kuò)展性使得它成為構(gòu)建可靠、高性能微服務(wù)架構(gòu)的理想選擇。希望本文對(duì)于讀者們?cè)谑褂肧pring Cloud Gateway時(shí)有所幫助,并能夠加深對(duì)該組件的理解和運(yùn)用。愿您在未來(lái)的項(xiàng)目中,能夠借助Spring Cloud Gateway輕松實(shí)現(xiàn)安全、高效的網(wǎng)關(guān)服務(wù)。
到此這篇關(guān)于Spring Cloud Gateway的配置與使用的文章就介紹到這了,更多相關(guān)Gateway配置與使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Java中ExceptionInInitializer錯(cuò)誤的解決方法
ExceptionInInitializerError 是 Java 中的未經(jīng)檢查的異常,它是 Error 類(lèi)的子類(lèi), 它屬于運(yùn)行時(shí)異常的類(lèi)別,下面我們就來(lái)看看它的具體解決方法吧2024-02-02java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式
這篇文章主要介紹了java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04如何通過(guò)idea給web項(xiàng)目打war包
這篇文章主要介紹了如何通過(guò)idea給web項(xiàng)目打war包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07springboot?vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增
這篇文章主要為大家介紹了springboot?vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Java入門(mén)交換數(shù)組中兩個(gè)元素的位置
在Java中,交換數(shù)組中的兩個(gè)元素是基本的數(shù)組操作,下面我們將詳細(xì)介紹如何實(shí)現(xiàn)這一操作,以及在實(shí)際應(yīng)用中這種技術(shù)的重要性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09SpringMVC mybatis整合實(shí)例代碼詳解
這篇文章主要介紹了springmvc與mybatis實(shí)例詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04IDEA導(dǎo)入geoserver項(xiàng)目的詳細(xì)步驟及注意事項(xiàng)
由于GeoServer是基于Java開(kāi)發(fā)的。因此在安裝之前,必須確保安裝了Java。本文給大家分享IDEA導(dǎo)入geoserver項(xiàng)目的詳細(xì)步驟及注意事項(xiàng),感興趣的朋友一起看看吧2021-06-06Spring中@Async用法詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Spring中@Async用法詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02