Spring Cloud Gateway的配置與使用教程
Gateway其實是springcloud 原生的東西,但是我還是想放在這里講,因為我們使用nacos時,前端調(diào)用服務之后,一般會調(diào)用到我們的網(wǎng)關上面,然后網(wǎng)關選擇我們的nacos服務,再調(diào)用后端的服務
在當今微服務架構中,網(wǎng)關起著至關重要的角色。它充當著應用程序和外部世界之間的門戶,處理來自客戶端的請求并將其轉發(fā)到適當?shù)奈⒎铡6鳶pring Cloud Gateway作為Spring Cloud生態(tài)系統(tǒng)中的一員,為我們提供了一個強大而靈活的網(wǎng)關解決方案。本文將深入探討Spring Cloud Gateway的配置與使用,幫助讀者更好地理解并應用這個優(yōu)秀的網(wǎng)關工具。
??第一步,創(chuàng)建一個springboot工程
??第二步,添加依賴
<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>
??第三步,編寫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開頭的請求都負載到provider服務 filters: - RewritePath=/provider/(?<segment>.*), /$\{segment} #過濾掉url里的provider,例如http://ip:port/provider/getCity -> http://ip:port/getCity application: name: gateway server: port: 8999
解讀配置文件:
- RewritePath:過濾掉url里的provider,例如http://ip:port/provider/getCity -> http://ip:port/getCity
- Path:以provider開頭的請求都負載到provider服務
- id:route的唯一id
- uri:需要返回的nacos中間的服務
這是我們的nacos控制臺,里面有一個service-provider服務,他負責提供api
所以yml里面的routes我們配置uri為lb://service-provider
假如前端要訪問我們的服務,他只需要訪問http://localhost:8999/provider
就好,他是以provider
開頭,所以Path這里我們配置為- Path=/provider/**
但是我們服務提供者提供的api為/echo/{string}
,所以我們需要去掉provider
,因此RewritePath配置為/provider/(?<segment>.*), /$\{segment}
??第四步,啟動主啟動類
之后網(wǎng)關服務就會被注冊到nacos中
然后就可以通過我們的gateway服務訪問我們nacos中的服務了
提供者提供的api如下
官網(wǎng):https://spring.io/projects/spring-cloud-gateway
倉庫地址:https://gitee.com/WangFuGui-Ma/spring-cloud-alibaba/tree/master
通過本文的介紹,我們了解了Spring Cloud Gateway的核心概念和基本配置。它的靈活性和可擴展性使得它成為構建可靠、高性能微服務架構的理想選擇。希望本文對于讀者們在使用Spring Cloud Gateway時有所幫助,并能夠加深對該組件的理解和運用。愿您在未來的項目中,能夠借助Spring Cloud Gateway輕松實現(xiàn)安全、高效的網(wǎng)關服務。
到此這篇關于Spring Cloud Gateway的配置與使用的文章就介紹到這了,更多相關Gateway配置與使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Java中ExceptionInInitializer錯誤的解決方法
ExceptionInInitializerError 是 Java 中的未經(jīng)檢查的異常,它是 Error 類的子類, 它屬于運行時異常的類別,下面我們就來看看它的具體解決方法吧2024-02-02springboot?vue項目管理后端實現(xiàn)接口新增
這篇文章主要為大家介紹了springboot?vue項目管理后端實現(xiàn)接口新增,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05