看的一个pdf说的。。大型网站架构演变
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
第一步:物理分離 webserver 和數(shù)據(jù)庫
????????????????????????????將應(yīng)用和數(shù)據(jù)庫從物理上分離,變成了兩臺(tái)機(jī)器
第二步:增加頁面緩存
????????????????????????????例如 squid
第三步:增加頁面片段緩存
????????????????????????????例如 ESI 等
第四步:數(shù)據(jù)緩存
????????????????????????????緩存技術(shù),包括像 Map 數(shù)據(jù)結(jié)構(gòu)、緩存算法、所選用的框架本身的實(shí)現(xiàn)機(jī)制等
第五步: 增加 webserver
????????????????????????????1、如何讓訪問分配到這兩臺(tái)機(jī)器上,這個(gè)時(shí)候通常會(huì)考慮的方案是 Apache 自帶的負(fù)載均衡
????????????????????????????方案,或 LVS 這類的軟件負(fù)載均衡方案;
????????????????????????????2、如何保持狀態(tài)信息的同步,例如用戶 session 等,這個(gè)時(shí)候會(huì)考慮的方案有寫入數(shù)據(jù)庫、
????????????????????????????寫入存儲(chǔ)、cookie 或同步 session 信息等機(jī)制等;
????????????????????????????3、如何保持?jǐn)?shù)據(jù)緩存信息的同步,例如之前緩存的用戶數(shù)據(jù)等,這個(gè)時(shí)候通常會(huì)考慮的機(jī)
????????????????????????????制有緩存同步或分布式緩存;
????????????????????????????4、如何讓上傳文件這些類似的功能繼續(xù)正常,這個(gè)時(shí)候通常會(huì)考慮的機(jī)制是使用共享文件
????????????????????????????系統(tǒng)或存儲(chǔ)等;
第六步:分庫
????????????????????這一步更多的是需要從業(yè)務(wù)上做合理的劃分,以實(shí)現(xiàn)分庫,具體技術(shù)細(xì)節(jié)上沒有其他的要求
第七步:分表、DAL 和分布式緩存
????????????????????分表更多的同樣是業(yè)務(wù)上的劃分,技術(shù)上涉及到的會(huì)有動(dòng)態(tài) hash 算法、consistent hash 算法
????????????????????等;
????????????????????DAL 涉及到比較多的復(fù)雜技術(shù),例如數(shù)據(jù)庫連接的管理(超時(shí)、異常)、數(shù)據(jù)庫操作的控
????????????????????制(超時(shí)、異常)、分庫分表規(guī)則的封裝等;
第八步:增加更多的 webserver
????????????1、Apache 的軟負(fù)載或 LVS 軟負(fù)載等無法承擔(dān)巨大的 web 訪問量(請求連接數(shù)、網(wǎng)絡(luò)流量等)
????????????的調(diào)度了,這個(gè)時(shí)候如果經(jīng)費(fèi)允許的話,會(huì)取的方案是購 買硬件負(fù)載,例如 F5、Netsclar
????????????、Athelon 之類的,如經(jīng)費(fèi)不允許的話,會(huì)取的方案是將應(yīng)用從邏輯上做一定的分類,然
????????????后分散到不同的軟負(fù)載集群中;
????????????2、原有的一些狀態(tài)信息同步、文件共享等方案可能會(huì)出現(xiàn)瓶頸,需要進(jìn)行改進(jìn),也許這個(gè)
????????????時(shí)候會(huì)根據(jù)情況編寫符合網(wǎng)站業(yè)務(wù)需求的分布式文件系統(tǒng)等;
????????????在做完這些工作后,開始進(jìn)入一個(gè)看似完美的無限伸縮的時(shí)代,當(dāng)網(wǎng)站流量增加時(shí),應(yīng)對的
????????????解決方案就是不斷的添加 webserver。
第九步:數(shù)據(jù)讀寫分離和廉價(jià)存儲(chǔ)方案
????????????????數(shù)據(jù)讀寫分離要求對數(shù)據(jù)庫的復(fù)制、standby 等策略有深入的掌握和理解,同時(shí)會(huì)要求具備
????????????????自行實(shí)現(xiàn)的技術(shù);
????????????????廉價(jià)存儲(chǔ)方案要求對 OS 的文件存儲(chǔ)有深入的掌握和理解,同時(shí)要求對采用的語言在文件這
????????????????塊的實(shí)現(xiàn)有深入的掌握、
第十步:進(jìn)入大型分布式應(yīng)用時(shí)代和廉價(jià)服務(wù)器群夢想時(shí)代
????????????????1、拆成分布式后需要提供一個(gè)高性能、穩(wěn)定的通信框架,并且需要支持多種不同的通信和
????????????????遠(yuǎn)程調(diào)用方式;
????????????????2、將一個(gè)龐大的應(yīng)用拆分需要耗費(fèi)很長的時(shí)間,需要進(jìn)行業(yè)務(wù)的整理和系統(tǒng)依賴關(guān)系的控
????????????????制等;
????????????????3、如何運(yùn)維(依賴管理、運(yùn)行狀況管理、錯(cuò)誤追蹤、調(diào)優(yōu)、監(jiān)控和報(bào)警等)好這個(gè)龐大的
????????????????分布式應(yīng)用。
轉(zhuǎn)載于:https://my.oschina.net/u/1457061/blog/655159
總結(jié)
以上是生活随笔為你收集整理的看的一个pdf说的。。大型网站架构演变的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如饼干般轻薄:联想 ThinkBook
- 下一篇: 由归并算法引申出来的其他问题