SpringCloud Gateway路由表配置實(shí)現(xiàn)小結(jié)
Spring Cloud Gateway 的路由表是網(wǎng)關(guān)的核心配置,負(fù)責(zé)將請(qǐng)求轉(zhuǎn)發(fā)到不同的服務(wù) / 地址。以下是基于示例配置的關(guān)鍵解析:
一、基礎(chǔ)結(jié)構(gòu)
路由表配置在spring.cloud.gateway.routes下,每個(gè)路由是一個(gè)獨(dú)立的配置項(xiàng),包含以下核心字段:
spring:
cloud:
gateway:
routes:
- id: 路由唯一標(biāo)識(shí) # 每個(gè)路由必須有唯一id
uri: 目標(biāo)地址 # 請(qǐng)求要轉(zhuǎn)發(fā)到的地址
predicates: [] # 路由匹配規(guī)則(滿足條件才轉(zhuǎn)發(fā))
filters: [] # 路由過(guò)濾器(轉(zhuǎn)發(fā)前后的加工邏輯)
order: 優(yōu)先級(jí)數(shù)字 # 數(shù)字越小,優(yōu)先級(jí)越高二、示例配置拆解
以示例中的兩個(gè)路由為例,解析不同場(chǎng)景的配置邏輯:
1. 轉(zhuǎn)發(fā)到外部地址(bing-route)
- id: bing-route # 路由id:bing-route
uri: https://cn.bing.com/ # 目標(biāo)地址:必應(yīng)官網(wǎng)(外部地址)
predicates:
- Path=/** # 匹配規(guī)則:所有路徑(任意請(qǐng)求都能匹配)
filters: [] # 無(wú)過(guò)濾器
order: 10 # 優(yōu)先級(jí):10(數(shù)字大,優(yōu)先級(jí)低)
metadata: # 自定義元數(shù)據(jù)(非核心,可用于擴(kuò)展邏輯)
hello: world- 作用:所有請(qǐng)求都會(huì)被轉(zhuǎn)發(fā)到必應(yīng)官網(wǎng);
- 注意:
uri填外部地址時(shí),直接寫(xiě)完整的 HTTP/HTTPS 地址。
2. 轉(zhuǎn)發(fā)到微服務(wù)(order-route)
- id: order-route # 路由id:order-route
uri: lb://service-order # 目標(biāo)地址:微服務(wù)service-order(lb=負(fù)載均衡)
predicates:
- Path=/api/order/** # 匹配規(guī)則:以/api/order/開(kāi)頭的路徑
order: 1 # 優(yōu)先級(jí):1(數(shù)字小,優(yōu)先級(jí)高)- 作用:只有路徑以
/api/order/開(kāi)頭的請(qǐng)求,才會(huì)轉(zhuǎn)發(fā)到service-order微服務(wù); - 關(guān)鍵:
uri: lb://服務(wù)名是微服務(wù)場(chǎng)景的寫(xiě)法,lb表示開(kāi)啟負(fù)載均衡(需配合 Nacos/Eureka 等注冊(cè)中心)。
三、核心字段說(shuō)明
字段名 | 作用 |
id | 路由唯一標(biāo)識(shí),不能重復(fù) |
uri | 轉(zhuǎn)發(fā)目標(biāo):- 外部地址:https://xxx.com - 微服務(wù):lb://服務(wù)名 |
predicates | 路由匹配規(guī)則(多個(gè)規(guī)則需同時(shí)滿足),常用Path=/xxx/** (路徑匹配) |
filters | 過(guò)濾器(如添加請(qǐng)求頭、路徑重寫(xiě)等),空數(shù)組表示無(wú)過(guò)濾 |
order | 路由優(yōu)先級(jí):數(shù)字越小,優(yōu)先級(jí)越高(多個(gè)路由匹配時(shí),優(yōu)先走 order 小的) |
四、優(yōu)先級(jí)注意事項(xiàng)
示例中order-route的order=1,bing-route的order=10:
- 當(dāng)請(qǐng)求路徑是/api/order/xxx時(shí),會(huì)先匹配order-route(因?yàn)閮?yōu)先級(jí)更高),轉(zhuǎn)發(fā)到service-order;
- 若order-route的order大于bing-route,則/api/order/xxx會(huì)被bing-route攔截,轉(zhuǎn)發(fā)到必應(yīng)(不符合預(yù)期)。→ 匹配更精確的路由,order要設(shè)置更小的數(shù)字。
到此這篇關(guān)于SpringCloud Gateway路由表配置實(shí)現(xiàn)小結(jié)的文章就介紹到這了,更多相關(guān)SpringCloud Gateway路由配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring Cloud GateWay 路由轉(zhuǎn)發(fā)規(guī)則介紹詳解
- Spring Cloud Gateway + Nacos 實(shí)現(xiàn)動(dòng)態(tài)路由
- Nacos+Spring Cloud Gateway動(dòng)態(tài)路由配置實(shí)現(xiàn)步驟
- spring-cloud-gateway動(dòng)態(tài)路由的實(shí)現(xiàn)方法
- springcloud gateway自定義斷言規(guī)則詳解,以后綴結(jié)尾進(jìn)行路由
- Spring cloud gateway設(shè)置context-path服務(wù)路由404排查過(guò)程
相關(guān)文章
Java構(gòu)造方法 super 及自定義異常throw合集詳解用法
異常是程序中的一些錯(cuò)誤,但不是所有錯(cuò)誤都是異常,且錯(cuò)誤有時(shí)候是可以避免的,super可以理解為是指向自己超(父)類對(duì)象的一個(gè)指針,而這個(gè)超類指的是離自己最近的一個(gè)父類,構(gòu)造器也叫構(gòu)造方法、構(gòu)造函數(shù),是一種特殊類型的方法,負(fù)責(zé)類中成員變量(域)的初始化2021-10-10
Java Spring開(kāi)發(fā)環(huán)境搭建及簡(jiǎn)單入門示例教程
這篇文章主要介紹了Java Spring開(kāi)發(fā)環(huán)境搭建及簡(jiǎn)單入門示例,結(jié)合實(shí)例形式分析了spring環(huán)境搭建、配置、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-11-11
Springboot整合WebSocket 實(shí)現(xiàn)聊天室功能
WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,本文主要介紹了Springboot整合WebSocket實(shí)現(xiàn)聊天室功能,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
解決idea spring boot 修改html等不重啟即時(shí)生效的問(wèn)題
這篇文章主要介紹了解決idea spring boot 修改html等不重啟即時(shí)生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
Java正則表達(dá)式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
什么是正則表達(dá)式,正則表達(dá)式的作用是什么?這篇文章主要為大家詳細(xì)介紹了Java正則表達(dá)式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
java自定義ClassLoader加載指定的class文件操作
這篇文章主要介紹了java自定義ClassLoader加載指定的class文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
基于Java Springboot + Vue + MyBatis實(shí)現(xiàn)音樂(lè)播放系統(tǒng)
這篇文章主要介紹了一個(gè)完整的音樂(lè)播放系統(tǒng)是基于Java Springboot + Vue + MyBatis編寫(xiě)的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08

