1、前言
最近在看大型網站架構的書籍,書中介紹了大型網站支持擴展性。大概意思就是當服務器出現性能的不足的時,如何調整服務器,用來滿足更多的請求。之前對這個擴展概念不是很清楚,仔細看了一下擴展分為水平擴展和垂直擴展兩種。今天總結一下服務擴展性的知識點。主要內容為(1)服務器擴展性是什么?為什么需要擴展性,在什么場景下需要考慮服務擴展性?(2)擴展性有哪些實現方式,各自有什么區別,實際工作中如何選擇?
2、基本概念
以一個網站的應用場景為例進行講解。任何一個大型的網站都是從小網站一步一步發展過來的,因此在剛開始的時候,只部署了一臺Web服務器,在訪問量不多的時候,網站運行的很好。隨著訪問量越來越多,由于單臺Web服務器對外提供的服務有限,此時就容易出現部分用戶無法正常訪問網站,這個時候就需要考慮如何改進Web服務器的性能。如何做到對現有系統影響最小的情況下,系統功能可以持續擴展或提升性能。首先排除從代碼優化角度考慮,如何從服務器擴展考慮。擴展其實就是服務器資源的添加,例如內存資源、CPU資源、磁盤資源等。添加資源后,保證Web服務器可以正常運行。擴展分為水平擴展和垂直擴展兩種方式。
垂直擴展:
假設剛開始有一臺Web服務器,在使用過程中,發現內存資源不足,當前內存只有16G,正好服務器還有剩余的內存槽可以使用,于是買一根內存條插上即可。
水平擴展:
Web服務器上內存槽都被用完了,沒有地方可以擴展內存了,這個時候就需要重新購買一太Web服務器。這個時候就有兩臺Web服務器對外提供服務了,需要考慮負載均衡。
文章列表