Sping Cloud Gateway如何抗住億級流量?
分布式集群擴展
單機性能總有上限,千萬級并發必須依靠集群的無限伸縮能力。
單個 Gateway 節點承載極限有限(比如 10-20 萬 QPS),要達到千萬級必須依賴 分片+集群化。
圖片
Spring Cloud Gateway 可在 Kubernetes、Docker 或 VM 集群中運行,通過副本擴展來提高整體吞吐。
通過 Nginx、LVS、F5 或云廠商的 SLB/ELB,在入口層將請求分發到多個 Gateway 節點。
在不同可用區/地域部署 Gateway 集群,結合 DNS/Anycast 做就近接入。
響應式編程
在分布式微服務架構中,網關承擔著流量接入、路由轉發、安全鑒權、限流熔斷等關鍵職責。
隨著業務規模擴大,網關需要能夠承受千萬級別的請求。
Spring Cloud Gateway(以下簡稱 SCG),基于 Reactor 的響應式編程模型,天然適合高并發場景。
SCG 基于 Project Reactor。它將請求處理流程視為一個數據流(Mono 或 Flux)。
網關中的所有操作,包括路由匹配、Filter 執行和后端調用,都通過鏈式操作實現。
這確保了所有邏輯都是非阻塞的,網關線程發出請求后會立即釋放,處理其他請求,直到收到回調通知。
異步非阻塞架構
傳統阻塞模型下,每個請求占用一個線程且在等待 I/O 時阻塞,線程數需線性擴展。
而異步非阻塞模型使用較少的線程即可承載大量并發請求。
圖片
Spring Cloud Gateway 采用 Netty 異步非阻塞架構。
請求從接收、路由、轉發到響應,全鏈路異步化。
I/O 操作不再占用線程等待,而是通過 回調+Future 機制完成。
同等硬件下,能支撐數倍甚至數十倍的并發請求。
限流熔斷
在千萬級并發下,部分請求必然失敗或超時,如果不做治理,容易產生 級聯雪崩。
核心手段:
圖片
熔斷:當某個下游服務失敗率過高時,網關快速失敗,避免拖垮更多線程。
限流:對 API、用戶、IP 做速率限制,常見算法有 令牌桶、漏桶。
降級:非關鍵接口返回兜底響應(緩存/默認值),核心服務優先保證可用。
實現方式:
使用 Spring Cloud Gateway 內置的 Redis RateLimiter,基于 Lua 腳本保證分布式原子性。
集成 Sentinel / Resilience4j,實現熔斷、隔離艙、限流策略。



























