雲原生API Gateway在處理收到的請求時,會按照事先配置的路由規則的優先順序逐一進行匹配。匹配過程是從高優先順序規則向低優先順序規則進行遍曆。如果與某條規則匹配成功,則轉寄請求至規則中配置的目標服務;如果匹配失敗,則會返回404錯誤。
路由匹配優先順序
存在多條路由規則時,按照关联域名 > 路径(Path)> 请求头(Header)> 请求参数(Query)> 创建时间的優先順序從高到低依次進行排序,詳細規則如下:
-
根據关联域名進行判斷:網域名稱字串長度越長,優先順序越高。
-
根據路径(Path)進行判斷:
-
匹配规则不同時:等于 > 前缀是 > 正则匹配。
-
匹配规则相同時:路径(Path)字串越長,優先順序越高。
-
-
根據请求头(Header)的索引值對總數進行判斷:總數越大,優先順序越高。
-
根據请求参数(Query)的索引值對進行判斷:總數越大,優先順序越高。
-
根據创建时间進行判斷:建立時間越早則優先順序越高。
操作步驟
-
雲原生API Gateway提供了執行個體內和執行個體外兩種建立路由的方式:
執行個體外API
-
登入雲原生API Gateway控制台。左側導覽列選擇API,並在頂部功能表列選擇地區。
-
單擊目標API,在下拉框中選擇需要配置路由策略的執行個體,或選擇全部实例。在頂部的 全部執行個體 下拉式功能表中,選擇目標執行個體。
-
然後單擊创建路由。
執行個體內API
-
登入雲原生API Gateway控制台。左側導覽列選擇实例,並在頂部功能表列選擇地區。
-
在实例頁面,單擊目標網關執行個體ID。左側導覽列選擇API,單擊目標API。
-
單擊创建路由。
-
-
在创建路由頁面,配置相關項目,然後單擊保存或保存并发布。
說明-
匹配規則之間是“與”關係,即填寫的規則越多匹配的範圍越小。
-
路由之間匹配的優先順序與路由配置頁面展示排列順序一致。
配置項
描述
路由名称
自訂路由名稱。
路由描述
單擊添加路由描述,填寫路由的相關描述。
域名
-
選擇路由需要匹配的網域名稱,支援選擇多個網域名稱。
-
如需建立新的網域名稱,單擊添加網域名稱,在面板中進行建立。
路径(Path)
設定匹配HTTP請求中的Path參數。
-
相同匹配規則時Path越長優先順序越高。
-
不同匹配規則時等于 > 前缀是 > 正则匹配。
-
等于:即完全符合。例如,Path等於
/user。 -
前缀是:以首碼作為匹配條件。例如,Path以
/user開頭。 -
正则匹配:以Regex作為匹配條件。
-
方法(Method)
設定匹配HTTP請求中的Method參數。支援選擇多種HTTP方法,預設為ANY。
请求头(Header)
設定匹配HTTP請求中的Header參數,相同匹配規則時參數越多優先順序越高。
请求参数(Query)
設定匹配HTTP請求中的Query參數,相同匹配規則時參數越多優先順序越高。
所属实例
選擇路由生效的所屬雲原生API Gateway執行個體。
使用场景
選擇當前路由的目標服務類型。
-
基礎情境:单服务
-
灰階情境:按比例(多服务)、按标签(标签路由)
-
其他情境:Mock、重定向
關於目標服務不同類型說明,請參見路由。
說明涉及權重的目標服務流量比例總和要求為100%。
后端服务
選擇已關聯的後端服務和連接埠。
說明-
您可以單擊关联服务,在面板選擇來源和服務。
-
不同的來源類型允許添加的來源數量有不同的限制。
-
Container Service不得超過5個。
-
Nacos和Zookeeper只能添加一個。
-
超时时间(秒)
輸入逾時時間。預設為60秒。如果為0,則表示永不逾時。
Fallback
設定Fallback服務,您需要選擇指定的服務。當路由指向的後端服務沒有可用節點時,原請求會訪問此處指定的Fallback服務。
說明目前僅支援HTTP服務之間的Fallback能力。
重试次数
輸入重試次數。預設為2次。如果為 0,則表示禁用重試。
重试条件
選擇重試條件。
重试状态码
添加重試狀態代碼,可添加多個。
-