系統架構系列 - 3: 高併發、高可用與高性能

更新於 發佈於 閱讀時間約 3 分鐘

簡介

在系統架構的領域中,系統性能的現況常常是討論的焦點,其中所謂的三高——「高併發」、「高可用」與「高性能」更是不可或缺的概念。接下來,本文將對這三者進行介紹。

高併發

在網路文章與書籍中,「高併發」相關的主題經常被提及,因此這可以說是最受關注的概念之一。

高併發(High Concurrency)可以理解為承擔流量的能力,即如何應對短時間內的高流量。大多數系統在正常情況下運作良好,但在高併發情境下,情況可能就不那麼樂觀了。每個函數的處理速度、API的回傳速度、SQL的效能等,都是需要考量的因素。即使僅僅慢了0.1秒,都可能導致整個系統崩潰。

目前實現高併發的方式主要有以下幾種:

  1. 垂直擴展:直接升級伺服器等硬體設施,以提升計算速度,簡單暴力的方式。
  2. 水平擴展+負載均衡:通過負載均衡(Load Balance)將請求平均分配到多台伺服器上。[註1]
  3. 多線程:利用多線程技術同時處理多個請求。
  4. 事件驅動架構:透過事件循環和回調函數(如 Node.js)來處理大量併發請求。
  5. 緩存:利用緩存來減少對後端數據庫的請求,提高響應速度。

高可用

高可用性(High Availability, HA)是指系統能夠保持多長時間正常運行的能力,或稱低停機時間。高可用的目標在於最小化系統的停機時間,從而提升用戶體驗和服務的可靠性。

目前實現高併發的方式主要有以下幾種:

  1. 負載均衡:將請求分散到多個伺服器上,以減少單一伺服器的負擔,提升整體可用性。
  2. 灰度發布:在更新新版本時,先對部分機器進行更新,確認無誤後再更新其餘伺服器。
  3. 冗餘系統:通過使用多個伺服器或組件,確保即使某一部分出現故障,系統仍能正常運作。例如,在不同地理位置設置伺服器。
  4. 故障轉移:當主系統整個故障時,自動切換至備用系統以保持服務連續性。
  5. 監控和自動恢復:實施監控系統,及時檢測故障並自動啟動修復流程。
  6. 故障演練:利用工具進行各種故障的演練,確保應對流程的有效性。

高性能

高性能(High Performance)指的是系統或應用處理任務的能力,簡單來說,就是對用戶的體驗。一般而言,高性能包含「快速處理能力」、「高資源利用率」、「低延遲」以及「可擴展性」。

目前實現高性能的方式有以下幾種:

  1. 演算法:選擇高效的演算法和數據結構,可以有效減少計算量。
  2. 多線程:充分利用多核處理器的能力,同時執行多個任務。
  3. 緩存:使用緩存儲存頻繁訪問的數據,減少對資料庫的請求。
  4. 性能監控:實施監控工具,及時發現並解決性能瓶頸。

總結

在這篇文章中,我簡要介紹了系統架構的三高議題。在實務上,近年來越來越紅的電商、代購、限量商品等都會用到這方面的知識。若想深入了解更多詳細資料,可以參考這篇文章:高併發通用設計閱讀筆記


[註1] 以 AWS、GCP 等雲端平台來說都有提供自動化的負載均衡設定,當流量達到設定值時,系統會自動啟動新的機器以分散流量,而在流量降低時則會關閉不需要的機器。

參考資料:

  1. https://ja99-doge.github.io/2022/12/12/high_concurrency/#如何提昇系統性能
  2. https://cloud.tencent.com/developer/article/2021745
  3. https://aws.amazon.com/tw/what-is/apache-kafka/
  4. https://ithelp.ithome.com.tw/articles/10222520
  5. https://hackmd.io/@tienyulin/redis-master-slave-replication-sentinel-cluster
  6. https://zh.wikipedia.org/zh-tw/內容傳遞網路
留言
avatar-img
留言分享你的想法!
avatar-img
林柏宇的沙龍
2會員
44內容數
test
林柏宇的沙龍的其他內容
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在系統架構領域,高併發、高可用及高性能是不可或缺的概念。高併發涉及系統在短時間內處理大量請求的能力;高可用性關注系統在故障情況下的持續運作能力;而高性能則關注系統快速處理任務、資源利用率高和低延遲的表現,並針對每個概念提供具體的實現方式及最佳實踐,幫助讀者瞭解如何在實務中提升系統的整體效能。
Thumbnail
在系統架構領域,高併發、高可用及高性能是不可或缺的概念。高併發涉及系統在短時間內處理大量請求的能力;高可用性關注系統在故障情況下的持續運作能力;而高性能則關注系統快速處理任務、資源利用率高和低延遲的表現,並針對每個概念提供具體的實現方式及最佳實踐,幫助讀者瞭解如何在實務中提升系統的整體效能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
討論系統架構時,我們常忽略低流量時期的準備,但真正的挑戰在於怎樣在突發高流量時保持穩定。我們深入探討了如何透過水平擴展、負載均衡、快取策略等多維度規劃,來強化系統對高流量的承受力,確保系統的靈活擴展與高可用性。
Thumbnail
討論系統架構時,我們常忽略低流量時期的準備,但真正的挑戰在於怎樣在突發高流量時保持穩定。我們深入探討了如何透過水平擴展、負載均衡、快取策略等多維度規劃,來強化系統對高流量的承受力,確保系統的靈活擴展與高可用性。
Thumbnail
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
Thumbnail
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News