[特殊字符] 高可用高并發微服務架構設計:Nginx 與 API Gateway 的協同實踐

一、Nginx 和 Gateway 的關系:是替代還是協作?

不是替代關系,而是協作關系。

1. Nginx 的角色(通常在最外層)

  • 反向代理 & 負載均衡:將前端請求分發到多個后端服務或網關實例。

  • 靜態資源服務:部署前端(如 Vue/React 打包后的靜態文件)。

  • SSL 終止:處理 HTTPS,減輕后端壓力。

  • 安全防護:如防 DDOS、限流、WAF(配合模塊)。

  • 高可用入口:作為整個系統的統一入口。

2. API Gateway 的角色(在微服務層前面)

  • 服務路由:根據路徑將請求轉發到具體的微服務(如?/user/**?→ user-service)。

  • 認證鑒權:統一處理 JWT、OAuth2 等。

  • 限流熔斷:防止某個服務被壓垮。

  • 日志監控:統一記錄請求日志、鏈路追蹤。

  • 協議轉換:如 REST → gRPC。


二、典型架構圖(高可用 + 高并發)

用戶 → DNS → [Nginx LB (HA)] → [API Gateway 集群] → [微服務集群]↑                   ↑(靜態資源)         (動態路由/鑒權/限流)

組件說明:

  1. Nginx 集群(主備或雙活):使用 Keepalived + VIP 實現高可用。多臺 Nginx 前置負載均衡(可再加 LVS/F5 或云 SLB)。

  2. API Gateway 集群:多實例部署,注冊到 Nginx 或服務發現(如 Nacos/Eureka)。支持橫向擴展,應對高并發。

  3. 微服務集群:每個服務多實例部署,通過注冊中心發現。


三、配置示例

1. Nginx 配置(反向代理到 Gateway)

# nginx.conf 或 conf.d/gateway.confupstream gateway_backend {server 192.168.1.10:8080 weight=5;  # Gateway 實例1server 192.168.1.11:8080 weight=5;  # Gateway 實例2# 可配置健康檢查keepalive 32;
}server {listen 80;server_name api.yourdomain.com;# 靜態資源(前端)location / {root /usr/share/nginx/html;try_files $uri $uri/ /index.html;}# 動態請求代理到網關location /api/ {proxy_pass http://gateway_backend;proxy_http_version 1.1;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}# WebSocket 支持location /ws/ {proxy_pass http://gateway_backend;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
}

2. Spring Cloud Gateway 配置(application.yml)

spring:cloud:gateway:routes:- id: user-serviceuri: lb://user-service  # 從注冊中心負載均衡predicates:- Path=/api/user/**filters:- StripPrefix=2  # 去掉 /api/user 前綴- id: order-serviceuri: lb://order-servicepredicates:- Path=/api/order/**filters:- StripPrefix=2# 全局限流(Redis + Token Bucket)redis-rate-limiter:replenishRate: 10   # 每秒補充10個令牌burstCapacity: 20   # 桶容量20# 服務發現(如 Nacos)nacos:discovery:server-addr: 192.168.1.100:8848

四、如何實現高可用 & 高并發?

五、常見誤區

??只用 Nginx 不用 Gateway→ 適合簡單系統,但微服務多了難以維護路由和鑒權。

??只用 Gateway 不用 Nginx→ Gateway 也能做負載均衡,但 Nginx 更成熟,適合做最外層防護和靜態資源服務。

??推薦:Nginx + Gateway 協同工作

  • Nginx 做“門衛”和“前臺”

  • Gateway 做“調度中心”和“安全審計”


六、進階建議

  1. 使用云原生方案:如 Kubernetes + Ingress (Nginx Ingress Controller) + Istio/Envoy Gateway。

  2. 自動化部署:配合 CI/CD 工具(Jenkins/GitLab CI)自動發布 Gateway 配置。

  3. 灰度發布:在 Gateway 層實現基于 Header 的流量切分。

  4. 性能壓測:使用 JMeter 或 wrk 測試 Nginx + Gateway 的吞吐能力。


總結

  • ??前端用 Nginx 部署靜態資源

  • ??后端用 API Gateway 做統一入口、路由、鑒權

  • ??Nginx 反向代理到 Gateway 集群,實現高可用

  • ??通過負載均衡、緩存、異步、集群化實現高并發

文章轉載自:古渡藍按

原文鏈接:高可用高并發微服務架構設計:Nginx 與 API Gateway 的協同實踐 - 古渡藍按 - 博客園

體驗地址:JNPF快速開發平臺

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96541.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96541.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96541.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解碼LLM量化:深入剖析最常見8位與4位核心算法

解碼LLM量化:深入剖析8位與4位核心算法 大型語言模型(LLM)的性能日益強大,但其龐大的體積和高昂的計算成本構成了部署的主要障礙。模型量化,作為一種將高精度浮點權重(如16位)映射到低位寬整數&…

提問:溫度不改變 logits 與概率的排名,為何還會影響模型輸出?

你此前圍繞溫度的核心困惑始終是:“溫度不改變 logits 與概率的排名,為何還會影響模型輸出?” 以下總結將緊扣這一困惑,并重點補充核采樣(Top-p)在其中的作用,明確溫度與核采樣如何共同影響輸出…

【文獻閱讀】Lossless data compression by large models

1. 中華人工智能研究中心,鄭州。 2. 鵬程實驗室,深圳。 3. 上海數學與交叉學科研究所,上海。 4. 中國科學院計算技術研究所,北京。 5. 寧波人工智能產業研究所,寧波。 6. 滑鐵盧大學計算機科學學院,加拿大安…

注意力機制:捕獲長距離依賴關系的革命性技術

本文由「大千AI助手」原創發布,專注用真話講AI,回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我,一起撕掉過度包裝,學習真實的AI技術! ? 1. 注意力機制概述:為什么需要關注"長距離依賴&qu…

PHP如何使用JpGraph生成柱形圖?

PHP使用JpGraph庫生成各類統計圖形具有顯著優勢,該庫作為專業的PHP圖表生成工具,能夠高效創建包括折線圖、餅圖、散點圖在內的多種數據可視化圖形,其核心價值在于提供了豐富的圖形定制能力和簡潔的API接口。JpGraph通過純PHP實現,…

免費的端口映射工具 ChmlFrp

免費的端口映射工具 ChmlFrp 前言:之前我寫過一篇關于cloudflare tunnel的使用教程,ChmlFrp是一個類似的工具,也可以用來進行內網穿透 我的博客對應文章地址 1.注冊賬號 注冊地址 點擊這個鏈接前往官網注冊一個賬號,過程簡單&…

遙感領域解決方案丨涵蓋:高光譜、無人機多光譜、空天地數據識別與計算

一:AI智慧高光譜遙感實戰:手撕99個案例項目、全覆蓋技術鏈與應用場景一站式提升方案在遙感技術飛速發展的今天,高光譜數據以其獨特的光譜分辨率成為環境監測、精準農業、地質勘探等領域的核心數據源。然而,海量的波段數據、復雜的…

中科米堆CASAIM自動化三維測量設備測量汽車殼體直徑尺寸

隨著新能源汽車產業向輕量化與高集成度發展,殼體作為電池組和電驅系統的核心承載部件,其孔位加工精度直接影響裝配密封性及結構強度,傳統人工測量方式已難以滿足現代化生產需求。自動化三維測量設備的引入,為汽車殼體直徑尺寸測量…

08.21總結

圓方樹 引入 我們注意到,樹結構相比普通圖具有諸多優良特性。若能將在無向圖上求解的問題轉化為樹結構問題,往往能大幅簡化求解過程。圓方樹正是實現這一轉化的有效工具。 定義 我們稱原圖中的點為"圓點"。通過引入方點并調整邊的關系&#xf…

亞馬遜廣告優化新邏輯:從人工苦力到AI智能的進化之路

"為什么我的廣告花費越來越高,轉化卻越來越差?""如何在海量關鍵詞中找到真正能帶來轉化的黃金詞?""為什么手動調整出價總是跟不上流量變化的速度?""怎樣才能避免因庫存問題導致的廣告權重暴跌…

【51單片機】【protues仿真】基于51單片機水位監測系統

目錄 一、主要功能 二、使用步驟 三、硬件資源 四、軟件設計 五、實驗現象 一、主要功能 1、數碼管顯示當前水位值 2、按鍵設置水位上下限閾值 3、當水位低于下限,啟動蜂鳴器警報并抽水至水位上限停止抽水 4、電機模擬水泵,蜂鳴器,指示…

白名單過濾的文件上傳如何bypass:boot2root靶機之fristileaks

靶機提示 base64解碼提取圖片 文件上傳之apache多后綴名解析漏洞 linpeas dirtycow提權 靶機下載 通過網盤分享的文件:FristiLeaks_1.3.ova 鏈接: https://pan.baidu.com/s/1ZWznp8egNGwnQqwh1gkSZg?pwdwwvp 提取碼: wwvp --來自百度網盤超級會員v8的分享主…

Centos 8 管理防火墻

firewall-cmd 檢查與安裝 在 CentOS 8 上安裝和啟用 firewalld(提供 firewall-cmd 工具)的步驟如下:1. 檢查 **firewalld** 是否已安裝 在安裝前,先檢查系統中是否已安裝: sudo firewall-cmd --version如果返回版本號&…

使用PPT進行科研繪圖過程中常用的快捷鍵

PPT科研繪圖常用快捷鍵速查表功能類別快捷鍵功能描述基礎操作與選擇Ctrl A全選幻燈片上的所有對象。Ctrl D快速復制選中的對象,并自動保持等間距排列。Shift Click多選多個對象。Ctrl G將選中的多個對象組合成一個整體。Ctrl Shift G取消組合。Ctrl 拖動復制…

`strchr` 字符串查找函數

1) 函數的概念與用途 strchr 是 C 標準庫中的一個基礎但極其重要的字符串處理函數,它的名字來源于"string chracter"(字符串字符)。這個函數的功能非常明確:在字符串中查找特定字符的第一次出現位置。 可以將 strchr 想…

Redis 678

Redis 8 是當前的最新穩定版(截至 2024 年中),它在 Redis 7 的基礎上帶來了更多重要改進。我們來對這三個主要版本進行一次全面的功能和性能對比。 核心演進脈絡 Redis 6 (2020):多線程時代的開創者。解決了網絡 I/O 瓶頸&#xf…

【大白話解析】 OpenZeppelin 的 Address 庫:Solidity安全地址交互工具箱?(附源代碼)

?? 一、這個文件是干嘛的?—— Address.sol 是個“工具箱” 你可以把這個 Address.sol文件理解為一個 ??“工具箱”??,里面裝了一堆??專門用來安全地跟別的地址(賬戶或合約)打交道的工具函數??。 在區塊鏈世界里,地址(address)可以是: ??外部賬戶(EOA)…

漫談《數字圖像處理》之測不準原理

在數字圖像處理中,提到的 “測不準原理” ,和量子力學里由海森堡提出的 “不確定性原理” (Heisenberg uncertainty principle,也叫海森堡測不準原理)有一定的類比關系,但本質上并不是同一個概念。以下為詳…

Linux服務測試

一、環境準備確認 確保 4 臺主機(APPSRV、STORAGESRV、ROUTERSRV、CLIENT )網絡連接正常,虛擬機網卡模式按要求設置(APPSRV、STORAGESRV 為 NAT 模式;ROUTERSRV 為雙網卡,NAT 僅主機模式;CLIE…

2.Shell腳本修煉手冊---創建第一個 Shell 腳本

2. 創建第一個 Shell 腳本 文章目錄2. 創建第一個 Shell 腳本2.1 什么是 Shell 腳本?2.1.1 腳本開頭:告訴系統用什么程序執行2.1.2 腳本注釋:給人看的 “說明書”2.1.3 bash 與 sh 的區別2.2 如何執行 Shell 腳本?方法 1&#xff…