SpringCloud Gateway路由表配置實現(xiàn)小結(jié)
Spring Cloud Gateway 的路由表是網(wǎng)關(guān)的核心配置,負責將請求轉(zhuǎn)發(fā)到不同的服務 / 地址。以下是基于示例配置的關(guān)鍵解析:
一、基礎結(jié)構(gòu)
路由表配置在spring.cloud.gateway.routes下,每個路由是一個獨立的配置項,包含以下核心字段:
spring:
cloud:
gateway:
routes:
- id: 路由唯一標識 # 每個路由必須有唯一id
uri: 目標地址 # 請求要轉(zhuǎn)發(fā)到的地址
predicates: [] # 路由匹配規(guī)則(滿足條件才轉(zhuǎn)發(fā))
filters: [] # 路由過濾器(轉(zhuǎn)發(fā)前后的加工邏輯)
order: 優(yōu)先級數(shù)字 # 數(shù)字越小,優(yōu)先級越高二、示例配置拆解
以示例中的兩個路由為例,解析不同場景的配置邏輯:
1. 轉(zhuǎn)發(fā)到外部地址(bing-route)
- id: bing-route # 路由id:bing-route
uri: https://cn.bing.com/ # 目標地址:必應官網(wǎng)(外部地址)
predicates:
- Path=/** # 匹配規(guī)則:所有路徑(任意請求都能匹配)
filters: [] # 無過濾器
order: 10 # 優(yōu)先級:10(數(shù)字大,優(yōu)先級低)
metadata: # 自定義元數(shù)據(jù)(非核心,可用于擴展邏輯)
hello: world- 作用:所有請求都會被轉(zhuǎn)發(fā)到必應官網(wǎng);
- 注意:
uri填外部地址時,直接寫完整的 HTTP/HTTPS 地址。
2. 轉(zhuǎn)發(fā)到微服務(order-route)
- id: order-route # 路由id:order-route
uri: lb://service-order # 目標地址:微服務service-order(lb=負載均衡)
predicates:
- Path=/api/order/** # 匹配規(guī)則:以/api/order/開頭的路徑
order: 1 # 優(yōu)先級:1(數(shù)字小,優(yōu)先級高)- 作用:只有路徑以
/api/order/開頭的請求,才會轉(zhuǎn)發(fā)到service-order微服務; - 關(guān)鍵:
uri: lb://服務名是微服務場景的寫法,lb表示開啟負載均衡(需配合 Nacos/Eureka 等注冊中心)。
三、核心字段說明
字段名 | 作用 |
id | 路由唯一標識,不能重復 |
uri | 轉(zhuǎn)發(fā)目標:- 外部地址:https://xxx.com - 微服務:lb://服務名 |
predicates | 路由匹配規(guī)則(多個規(guī)則需同時滿足),常用Path=/xxx/** (路徑匹配) |
filters | 過濾器(如添加請求頭、路徑重寫等),空數(shù)組表示無過濾 |
order | 路由優(yōu)先級:數(shù)字越小,優(yōu)先級越高(多個路由匹配時,優(yōu)先走 order 小的) |
四、優(yōu)先級注意事項
示例中order-route的order=1,bing-route的order=10:
- 當請求路徑是/api/order/xxx時,會先匹配order-route(因為優(yōu)先級更高),轉(zhuǎn)發(fā)到service-order;
- 若order-route的order大于bing-route,則/api/order/xxx會被bing-route攔截,轉(zhuǎn)發(fā)到必應(不符合預期)。→ 匹配更精確的路由,order要設置更小的數(shù)字。
到此這篇關(guān)于SpringCloud Gateway路由表配置實現(xiàn)小結(jié)的文章就介紹到這了,更多相關(guān)SpringCloud Gateway路由配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java仿文庫的基本方法(openoffice+swftools+flexPaper)
這篇文章主要為大家詳細介紹了Java仿文庫的基本方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02
springBoot的事件機制GenericApplicationListener用法解析
這篇文章主要介紹了springBoot的事件機制GenericApplicationListener用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值的相關(guān)資料2019-09-09
java實現(xiàn)多人聊天工具(socket+多線程)
這篇文章主要為大家詳細介紹了java實現(xiàn)多人聊天工具,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08

