您的系統(包括架構、服務、產品以及定義您品牌的所有內容)在以下情況下被視為可擴展:
它可以添加資源並進行擴展,以無縫處理增加的客戶需求和更大的工作負載。
當需求和工作負載減少時,它可以輕鬆、無縫地刪除資源。
這個想法是建立一個可以調整容量以滿足不斷變化的需求的系統。該系統需要具有高度可訪問性,並且需要讓所有客戶無論何時何地需要都可以使用。
例如,一個設計良好、可擴展的網站無論是一個還是數千個使用者 新加波电话号码 同時存取它都可以正常運作。隨著更多用戶登錄,功能不應有任何明顯的下降。
什麼是可擴充性模式?
您玩過樂高®積木嗎?也許您試圖在不遵循說明的情況下建造一個結構,結果卻讓它倒塌了?但當你按照精心繪製的說明進行操作時,你最終會得到一個堅固的結構,只有當你故意將磚塊拉開時,它才會倒塌。說明書中顯示的建築技術已經過測試並證明可以解決許多建築商遇到的常見結構問題。
計算開發中的架構模式與說明中的 LEGO® 建置技術類似。它們是一組開發和程式技術,已被證明可以解決電腦系統開發中的常見問題。這些模式具有良好的設計結構,具有明確定義的屬性,並且已經成功解決了過去的問題。
但這並不意味著每種可擴展性模式都適合您。您面臨的挑戰是選擇適當的模式並對其進行自訂以解決您的系統特有的問題。可擴展性模式可以節省您的時間,因為許多工作已經為您完成。
有哪些常見的可擴充性模式?
有多種可擴展的架構模式可供選擇。在這裡,我們將討論一些用於解決架構擴展問題的更常見的模式。
AKF 刻度立方體
這是一個三維模型,定義了沿著 X、Y 和 Z 軸縮放的三種方法。
X 軸縮放
X 軸描述了同一組件的多個實例的縮放。您可以透過複製或複製負載平衡器後面的服務、應用程式或一組資料來實現此目的。因此,如果您執行一個應用程式的N 個克隆,則每個執行個體處理 1/ N的負載。
X 軸縮放模式易於實現並提高交易可擴展性。但是,由於整個資料集在多個伺服器上複製並且資料快取呈指數級增長,因此維護成本可能很高。
Y 軸縮放
Y 軸上的縮放是透過沿著動詞或名詞邊界將不同的組件拆分或分段為多個宏或微服務來定義的。例如,基於動詞的句段可能定義結帳等服務。基於名詞的部分可能會描述購物車。
每個服務都可以獨立擴展,這使您可以將更多資源僅應用於目前需要的服務。為了確保高可用性,每個服務都應該有自己的、非共享的資料集。
非共用資料集可協助您實現故障隔離,讓您無需掃描整個系統即可快速輕鬆地診斷和修復問題。但Y軸的設定時間較長,實現起來也不是很容易。
Z 軸縮放
Y 軸分割不同的組件,而 Z 軸則用於解決系統中相似組件的分割問題。每個伺服器都執行相同的程式碼副本,但僅針對該資料的子集(或分片)。
Z 軸分割的常見用途是按地理位置劃分客戶或按類型劃分客戶。例如,訂閱新聞網站上的付費客戶可能可以 24/7 無限制地存取所有網站內容。同一網站的非付費客戶可以存取相同的數據,但他們可能每月只能打開和閱讀三到四篇文章。
這種設定可以降低營運成本,因為資料段更小並且需要更少的儲存資源。但是,Z 軸需要大量時間來設計和實現,並且需要大量自動化來降低系統開銷。
水平和垂直可擴展性模式
您可以放大(垂直),也可以縮小(水平)。
![Image](https://www.phonenumbersa.com/wp-content/uploads/2024/12/%E6%96%B0%E5%8A%A0%E6%B3%A2%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81-300x150.png)
垂直縮放
垂直擴展是指增加組件(例如伺服器)的功能以提高其效能。例如,隨著更多流量到達您的伺服器,其效能將會下降。增加更多 RAM 和儲存磁碟機可以提高伺服器的效能,從而可以更輕鬆地處理增加的流量。
垂直擴展很容易實現,可以節省資金,因為您不需要購買新資源,並且易於維護。但是,它們可能是單點故障,可能導致嚴重停機。
剛起步的公司可能會使用垂直擴展來幫助降低成本。但垂直方法最終將達到 RAM 和儲存限制,您將需要添加更多資源來滿足需求。
水平縮放
水平擴展是指透過向系統添加更多相同類型的資源來提高效能容量。例如,您不是透過增加一台伺服器的容量來提高其效能,而是在系統中添加更多伺服器。負載平衡器有助於根據可用性將工作負載分配到不同的伺服器。這提高了系統的整體效能。
更多的運算資源意味著更高的容錯能力和更少的停機風險。但是,新增伺服器和負載平衡器的成本可能會很高。您應該考慮使用本地資源和雲端資源的組合來處理增加的流量。
負載平衡