Mark Ku's Blog

前言

整理了一下大流量的網站架構設計,看起來大多的共通性都是把大拆小 "拆",把工作或瓶頸拆分出去,讓系統或服務夠容易水平擴展,避免在在單點上過載,造成系統瓶頸,其實就和真實世界的大型組織一樣,遇到發展瓶頸都得拆。

前端

後端

資料庫

  • 資料庫效能優化。如:建立索引、語法優化、反正規化,減少Join、表垂直拆分或使用快取伺服器,將不常變動的資料,快取起來,不要每次從Db 撈取等。
  • 可以將資料庫進行分片(Sharding)或分庫,將數據分散到多個數據庫上進行處理。
  • 讀寫分離 - 將資料庫讀寫分離,透過主從複製(Master Slave Replication)來處理大量讀請求。
  • 使用 NoSQL 資料庫,NoSQL 能有效地分區、分片,並具備水平擴展特性,特別適合處理大規模數據,例如:會員資料。
  • 確保交易一致性,使用鎖機制

快取

  • 前端快取 - 開啟 Client side cahce ,用戶端讓要過的檔案,沒有變更,就不需要重覆在請求。
  • 後端快取 - 對於不常變更、但頻繁查詢的資料,可利用快取伺服器進行快取,或採用 Redis Cluster 進行資料分片(適合 Redis Key 連續的場景)。

運維

  • 負載平衡器 - 負載平衡的核心原理是透過反向代理機制,將流量和任務分攤至多台伺服器上。如果 QPS 小於 10k,建議使用軟體反向代理(例如 nginx 或 yarp),因為硬體負載平衡設備的晶片經過額外設計,可以承載更高的流量負荷。當 QPS 超過 10k 時,就需要考慮採購硬體負載平衡器,例如 F5
  • 採用現代化系統運維架構(K8s),可以依據 QPS 或系統資源擴容及縮容。
  • 服務監控 (Health Check) - 及時偵測並回應服務異常,確保服務穩定運行。例如:Uptime-Kuma
  • 應用服務可觀測性 - 提供應用性能的可視化與分析,方便問題診斷與效能優化。例如:Signoz、Prometheus
  • 日誌服務器 (Log Server) - 集中管理與分析日誌,便於查找與追溯問題來源。例如:Grafana、SEQ

安全

最後

其實有些功能,我也沒實作過,但整理出來是希望自己有個概念,當遇到時,至少有個解決方案,但不是每個網站都需要這樣的架構設計,拆的太細的架構也會增加維護成本,而是考量未來的生意量,評估這種網站架構,會更適合。

參考

作者

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可

熱門文章

View all
Mark Ku
··604

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··471

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··329

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··240

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··235

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調
Mark Ku
··216

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
淺談高併發的網站架構設計 - Mark Ku's Blog