雲原生網關作為系統架構的入口,將傳統的流量網關和微服務網關合二為一,不僅大幅降低了網路開銷和營運成本,還提供了豐富的流量治理能力和體系化的可觀測能力。本文以雲原生網關關聯MSE Nacos中的服務來源來介紹如何配置路由策略和配置警示。
前提條件
將服務註冊到MSE Nacos,可參見在Spring Cloud應用中接入MSE Nacos作為服務註冊中心。
雲原生網關不支援添加MSE Nacos、ZooKeeper註冊的本地服務。
建立路由
登入MSE網關管理主控台,並在頂部功能表列選擇地區。
在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。
在左側導覽列,單擊路由管理,然後在路由頁簽單擊创建路由。
在创建路由頁面,填寫路由名稱為
springcloud-demo,網域名稱選擇*,路徑(Path)匹配規則為首碼是和/,路由指向選擇單服務,在服務名稱列表下,單擊關聯服務。
在關聯服務頁面,選擇需要的內容,單擊確定。

選擇服務名稱為
nacos-service-consumer,單擊儲存並發布。
配置路由策略
未配置路由策略時
登入MSE網關管理主控台。
在頂部功能表列選擇地區。
在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。
在基本概览頁面的网关入口頁簽,查看網關的入口地址。
說明雲原生網關入口地址實際是指SLB地址,您可以將關聯的SLB替換成您自有的SLB。具體操作,請參見管理網關入口SLB。
執行以下測試請求命令:
curl -I http://8.136.104.xx/echo-rest/hello說明該請求命令添加了Nacos來源的Demo服務,您可以根據實際後端服務調整請求Path進行測試。
響應結果:
HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8 Content-Length: 5 Date: Thu, 29 Aug 2024 08:21:47 GMT req-cost-time: 9 req-arrive-time: 1724919707979 resp-start-time: 1724919707988 x-envoy-upstream-service-time: 8 server: istio-envoy
配置限流策略時
在高並發訪問的情況下,如果您的應用沒有適當的限流措施,可能會導致後端服務因請求過多而過載,影響服務響應速度,甚至造成服務崩潰。通過限流,可以確保請求量保持在一個系統可承受的範圍內。雲原生網關支援配置限流策略,更多路由策略配置資訊,請參見路由策略。
登入MSE網關管理主控台,並在頂部功能表列選擇地區。
在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。
在左側導覽列,選擇路由管理。
單擊需要變更的路由規則操作列下的策略配置。
在策略配置頁簽,單擊限流。
流控規則的原理是監控路由的QPS指標,當指標達到設定的閾值時立即攔截流量,避免後端服務被瞬時的流量高峰衝垮,從而保障高可用性。
在限流地區,單擊流控規則頁簽。
在流控规则地區,進行如下配置。

配置項
說明
樣本值
總體QPS閾值
設定總體QPS閾值。
1
Web fallback 行為
選擇Web fallback 行為為返回指定內容或者跳轉到指定頁面。
返回指定內容
HTTP狀態代碼
設定HTTP狀態代碼。預設為429。
429
返回 content-type
選擇返回 content-type為普通文本或JSON。
普通文本
HTTP 返迴文本
輸入返迴文本。
springcloud-demo flow limit
是否開啟
開啟後,流控規則生效。

單擊新建或儲存,在提示對話方塊中單擊確定。
執行以下指令碼測試請求:
Windows環境
@echo off set "localUrl= http://8.136.104.xxx/echo-rest/hello" :loop curl -i -s %localUrl% goto loopLinux環境
#!/bin/bash URL="http://8.136.104.xxx/echo-rest/hello" while true; do curl -i -s $URL done響應結果(開啟限流策略後,HTTP狀態代碼返回429):
helloHTTP/1.1 429 Too Many Requests content-type: text/plain; charset=UTF-8 content-length: 26 date: Thu, 29 Aug 2024 08:54:46 GMT server: istio-envoy springcloud-demo flow limit HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8 Content-Length: 5 Date: Thu, 29 Aug 2024 08:54:46 GMT req-cost-time: 8 req-arrive-time: 1724921686961 resp-start-time: 1724921686970 x-envoy-upstream-service-time: 7 server: istio-envoy
相關文檔
如果在使用過程中出現問題,您可以參見雲原生網關FAQ進行排查,或者使用雲原生網關提供的問題排查功能進行排查。關於問題排查功能,請參見雲原生網關AI診斷。