摘要:衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn)是否容易向集群中添加新的服務(wù)器。網(wǎng)站的橫向分離將不同業(yè)務(wù)模塊進(jìn)行分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性。大家,可以根據(jù)每一種具體的架構(gòu)設(shè)計(jì)進(jìn)行深究。文章借鑒于書籍大型網(wǎng)站技術(shù)架構(gòu)。
網(wǎng)站開發(fā)初期,我們習(xí)慣性把所有代碼都寫到一個(gè)項(xiàng)目中。
前臺(tái)、后臺(tái)、緩存、數(shù)據(jù)庫、靜態(tài)資源... 等等。
網(wǎng)站系統(tǒng)物理分離
慢慢的系統(tǒng)會(huì)原來越大,很顯然需要面對(duì)大量用戶的高并發(fā)訪問和存儲(chǔ)海量數(shù)據(jù)。
很多用戶的請(qǐng)求,不可能在一臺(tái)服務(wù)器上完成。
很多緩存數(shù)據(jù),數(shù)據(jù)庫數(shù)據(jù),也不可能在一臺(tái)服務(wù)器上完成。
這是,網(wǎng)站的伸縮性架構(gòu)就變得尤為重要。
如下圖。
原理
我們通過多臺(tái)服務(wù)器組裝一個(gè)整體共同提供服務(wù),通過不斷地向集群中加入服務(wù)器,來緩解不斷上升的
用戶并發(fā)訪問壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。
衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn):
是否容易向集群中添加新的服務(wù)器。
當(dāng)加入新的服務(wù)器,是否可以提供和原來的服務(wù)器無差別的服務(wù)。
集群中可容納的總的服務(wù)器數(shù)量是否有限制。
應(yīng)用服務(wù)器集群
只要服務(wù)器上不保存數(shù)據(jù),所有的服務(wù)器都是對(duì)等的,通過負(fù)載均衡設(shè)備就可以向集群中增加服務(wù)器。
關(guān)系型數(shù)據(jù)庫集群(MYSQL)
關(guān)系型數(shù)據(jù)庫的集群伸縮性方案必須在數(shù)據(jù)庫之外實(shí)現(xiàn),通過路由分區(qū)等手段將部署有多個(gè)數(shù)據(jù)的服務(wù)器組成一個(gè)集群。
例如:Mysql 等。
非關(guān)系型數(shù)據(jù)庫集群(NOSQL)
非關(guān)系型數(shù)據(jù)庫先天就是為海量數(shù)據(jù)庫準(zhǔn)備的,因此對(duì)伸縮性的支持非常好。
例如:Redis、Memcache 等等。
緩存服務(wù)器集群
加入新的服務(wù)器可能會(huì)導(dǎo)致緩存路由失效,進(jìn)而導(dǎo)致集群中大部分緩存數(shù)據(jù)都無法訪問。
部署前需要改進(jìn)緩存路由算法保證緩存數(shù)據(jù)的可訪問性。
靜態(tài)資源服務(wù)器集群
比如 CSS,JS,Img 等資源進(jìn)行部署到服務(wù)器集群,降低流量并提高頁面呈現(xiàn)速度。
網(wǎng)站的縱向分離
將業(yè)務(wù)處理流程上的不同部分進(jìn)行分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性。
如下圖。
網(wǎng)站的橫向分離
將不同業(yè)務(wù)模塊進(jìn)行分離部署,實(shí)現(xiàn)系統(tǒng)伸縮性。
如下圖。
單一功能通過集群規(guī)模進(jìn)行伸縮。
將不同功能分離部署可以實(shí)現(xiàn)一定程度的伸縮性,但是隨著網(wǎng)站訪問量的逐步增加,即使分離到最新粒度的獨(dú)立部署
單一服務(wù)器也不能滿足業(yè)務(wù)規(guī)模的要求。
因此,必須使用服務(wù)器集群,即將相同服務(wù)部署在多臺(tái)服務(wù)器上構(gòu)成一個(gè)集群整體對(duì)外服務(wù)。
比如:搜索功能。
如果一臺(tái)服務(wù)器可以提供每秒1000次的請(qǐng)求服務(wù),如果網(wǎng)站高峰期,每秒搜索訪問量為10000次。
那么,就需要你部署10臺(tái)服務(wù)器構(gòu)成一個(gè)集群。
同理,緩存服務(wù)器也會(huì)出現(xiàn)這種情況。
事實(shí)上,計(jì)算一個(gè)服務(wù)的集群規(guī)模,需要同時(shí)考慮其對(duì)可用性、性能的影響及關(guān)聯(lián)服務(wù)集群的影響。
總結(jié)
集群伸縮性,可以分為應(yīng)用服務(wù)器集群伸縮性和數(shù)據(jù)服務(wù)器集群伸縮性。
這兩種集群由于對(duì)數(shù)據(jù)狀態(tài)管理的不同,技術(shù)實(shí)現(xiàn)也有很大的區(qū)別。
大家,可以根據(jù)每一種具體的架構(gòu)設(shè)計(jì)進(jìn)行深究。
文章借鑒于書籍《大型網(wǎng)站技術(shù)架構(gòu)》。
Thanks ~
AD:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21991.html
摘要:使用緩存兩個(gè)前提條件數(shù)據(jù)訪問熱點(diǎn)不均衡數(shù)據(jù)某時(shí)段內(nèi)有效,不會(huì)很快過期反向代理本地緩存分布式緩存異步旨在系統(tǒng)解耦。 大型網(wǎng)站技術(shù)架構(gòu)-入門梳理 標(biāo)簽 : 架構(gòu)設(shè)計(jì) [TOC] 羅列了大型網(wǎng)站架構(gòu)涉及到的概念,附上了簡(jiǎn)單說明 前言 本文是對(duì)《大型網(wǎng)站架構(gòu)設(shè)計(jì)》(李智慧 著)一書的梳理,類似文字版的思維導(dǎo)圖 全文主要圍繞性能,可用性,伸縮性,擴(kuò)展性,安全這五個(gè)要素 性能,可用性,伸縮性...
摘要:阿里巴巴的共享服務(wù)理念以及企業(yè)級(jí)互聯(lián)網(wǎng)架構(gòu)建設(shè)的思路,給這些企業(yè)帶來了不少新的思路,這也是我最終決定寫這本書的最主要原因。盡在雙阿里巴巴技術(shù)演進(jìn)與超越是迄今唯一由阿里巴巴集團(tuán)官方出品全面闡述雙八年以來在技術(shù)和商業(yè)上演進(jìn)和創(chuàng)新歷程的書籍。 showImg(https://segmentfault.com/img/remote/1460000015386860); 1、大型網(wǎng)站技術(shù)架構(gòu):核...
摘要:初始階段的網(wǎng)站架構(gòu)在初始階段,訪問量并不大,所以應(yīng)用程序數(shù)據(jù)庫文件等所有的資源都在一臺(tái)服務(wù)器上。在大型網(wǎng)站架構(gòu)中也采用分層結(jié)構(gòu),將網(wǎng)主占軟件系統(tǒng)分為應(yīng)用層服務(wù)層數(shù)據(jù)層。 有人說過,大型網(wǎng)站是根據(jù)業(yè)務(wù)需求逐步演化而來的,而不是設(shè)計(jì)出來的,下面就是一個(gè)大型網(wǎng)站的進(jìn)化過程。 初始階段的網(wǎng)站架構(gòu) showImg(https://segmentfault.com/img/bVbs8oa?w=30...
摘要:初始階段的網(wǎng)站架構(gòu)在初始階段,訪問量并不大,所以應(yīng)用程序數(shù)據(jù)庫文件等所有的資源都在一臺(tái)服務(wù)器上。使用緩存改善網(wǎng)站性能緩存的使用無處不在,緩存的根本目的是加快訪問速度。 有人說過,大型網(wǎng)站是根據(jù)業(yè)務(wù)需求逐步演化而來的,而不是設(shè)計(jì)出來的,下面就是一個(gè)大型網(wǎng)站的進(jìn)化過程。 1.初始階段的網(wǎng)站架構(gòu) showImg(https://segmentfault.com/img/bVbs8oa?w=3...
閱讀 3338·2023-04-26 00:57
閱讀 636·2021-10-08 10:05
閱讀 1385·2021-09-08 09:36
閱讀 4220·2021-08-12 13:31
閱讀 2575·2019-08-30 15:55
閱讀 2258·2019-08-30 15:55
閱讀 1046·2019-08-30 15:55
閱讀 2713·2019-08-29 13:17