国产成人一区二区视频在线播放_日韩先锋AV中文_日韩AV在线无修一区二区三区_91女神疯狂娇喘3p之夜_中文字幕欧美人妻精品二区_年轻善良的子9在线观看_一级淫片免费视频_久久国产亚洲高清观看_激情偷拍亚洲美色_国产精品白丝喷水

瑞安市優(yōu)博科技有限公司

 設(shè)為首頁(yè) | 加入收藏

 

全國(guó)統(tǒng)一服務(wù)熱線(xiàn):400 666 1789

WEBSITE KNOWLEDGE      網(wǎng)站知識(shí)  
 
這幾個(gè)問(wèn)題解決了,怎么設(shè)計(jì)大型網(wǎng)站架構(gòu)不再是困難
來(lái)源:本站  編輯:admin  時(shí)間:2020/12/29  點(diǎn)擊數(shù):13100  
在大型網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì)時(shí)如何避免走彎路,避開(kāi)在具體業(yè)務(wù)應(yīng)用中的那些坑?對(duì)于正處于互聯(lián)網(wǎng)轉(zhuǎn)型初期的技術(shù)團(tuán)隊(duì)來(lái)說(shuō)是必須考慮的問(wèn)題。本文將從“什么是架構(gòu)”和“軟件架構(gòu)的五要素”兩部分講述大型網(wǎng)站架構(gòu)方法。
  作者介紹
李智慧,曾擔(dān)任宅米 CTO, NEC 項(xiàng)目主管,阿里巴巴技術(shù)專(zhuān)家,IBM 咨詢(xún)經(jīng)理,Intel 大數(shù)據(jù)工程師;開(kāi)發(fā)過(guò) ERP,寫(xiě)過(guò)防火墻,做過(guò)網(wǎng)站架構(gòu),搞過(guò)數(shù)據(jù)庫(kù),帶過(guò)團(tuán)隊(duì),創(chuàng)過(guò)業(yè),申請(qǐng)過(guò)幾個(gè)分布式系統(tǒng)專(zhuān)利,為 Apache Spark 貢獻(xiàn)過(guò)一點(diǎn)代碼;曾在浙江大學(xué)為碩士研究生講授面向?qū)ο蟾呒?jí)編程課程;寫(xiě)過(guò)一本書(shū)《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》,被若干高校選為計(jì)算機(jī)類(lèi)專(zhuān)業(yè)教材。
  什么是架構(gòu)
關(guān)于什么是架構(gòu),一種比較通俗的說(shuō)法是 “最高層次的規(guī)劃,難以改變的決定”,這些規(guī)劃和決定奠定了事物未來(lái)發(fā)展的方向和最終的藍(lán)圖。
從這個(gè)意義上說(shuō),人生規(guī)劃也是一種架構(gòu)。選什么學(xué)校、學(xué)什么專(zhuān)業(yè)、進(jìn)什么公司、找什么對(duì)象,過(guò)什么樣的生活,都是自己人生的架構(gòu)。
具體到軟件架構(gòu),維基百科是這樣定義的:“有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導(dǎo)大型軟件系統(tǒng)各個(gè)方面的設(shè)計(jì)”。系統(tǒng)的各個(gè)重要組成部分及其關(guān)系構(gòu)成了系統(tǒng)的架構(gòu),這些組成部分可以是具體的功能模塊,也可以是非功能的設(shè)計(jì)與決策,他們相互關(guān)系組成一個(gè)整體,共同構(gòu)成了軟件系統(tǒng)的架構(gòu)。
  軟件架構(gòu)的五要素
一般說(shuō)來(lái),除了當(dāng)前的系統(tǒng)功能需求外,軟件架構(gòu)還需要關(guān)注性能、可用性、伸縮性、擴(kuò)展性和安全性這 5 個(gè)架構(gòu)要素,架構(gòu)設(shè)計(jì)過(guò)程中需要平衡這 5 個(gè)要素之間的關(guān)系以實(shí)現(xiàn)需求和架構(gòu)目標(biāo),也可以通過(guò)考察這些架構(gòu)要素來(lái)衡量一個(gè)軟件架構(gòu)設(shè)計(jì)的優(yōu)劣,判斷其是否滿(mǎn)足期望。
  性能
性能是網(wǎng)站的一個(gè)重要指標(biāo),除非是沒(méi)得選擇(比如只能到 www.12306.cn 這一個(gè)網(wǎng)站上買(mǎi)火車(chē)票),否則用戶(hù)無(wú)法忍受一個(gè)響應(yīng)緩慢的網(wǎng)站。一個(gè)打開(kāi)緩慢的網(wǎng)站會(huì)導(dǎo)致嚴(yán)重的用戶(hù)流失,很多時(shí)候網(wǎng)站性能問(wèn)題是網(wǎng)站架構(gòu)升級(jí)優(yōu)化的觸發(fā)器。可以說(shuō)性能是網(wǎng)站架構(gòu)設(shè)計(jì)的一個(gè)重要方面,任何軟件架構(gòu)設(shè)計(jì)方案都必須考慮可能會(huì)帶來(lái)的性能問(wèn)題。
也正是因?yàn)樾阅軉?wèn)題幾乎無(wú)處不在,所以?xún)?yōu)化網(wǎng)站性能的手段也非常多,從用戶(hù)瀏覽器到數(shù)據(jù)庫(kù),影響用戶(hù)請(qǐng)求的所有環(huán)節(jié)都可以進(jìn)行性能優(yōu)化。在瀏覽器端,可以通過(guò)瀏覽器緩存、使用頁(yè)面壓縮、合理布局頁(yè)面、減少 Cookie 傳輸?shù)仁侄胃纳菩阅堋?/span>
還可以使用 CDN,將網(wǎng)站靜態(tài)內(nèi)容分發(fā)至離用戶(hù)最近的網(wǎng)絡(luò)服務(wù)商機(jī)房,使用戶(hù)通過(guò)最短訪(fǎng)問(wèn)路徑獲取數(shù)據(jù)??梢栽诰W(wǎng)站機(jī)房部署反向代理服務(wù)器,緩存熱點(diǎn)文件,加快請(qǐng)求響應(yīng)速度,減輕應(yīng)用服務(wù)器負(fù)載壓力。
在應(yīng)用服務(wù)器端,可以使用服務(wù)器本地緩存和分布式緩存,通過(guò)緩存在內(nèi)存中的熱點(diǎn)數(shù)據(jù)處理用戶(hù)請(qǐng)求,加快請(qǐng)求處理過(guò)程,減輕數(shù)據(jù)庫(kù)負(fù)載壓力。也可以通過(guò)異步操作將用戶(hù)請(qǐng)求發(fā)送至消息隊(duì)列等待后續(xù)任務(wù)處理,而當(dāng)前請(qǐng)求直接返回響應(yīng)給用戶(hù)。
在網(wǎng)站有很多用戶(hù)高并發(fā)請(qǐng)求的情況下,可以將多臺(tái)應(yīng)用服務(wù)器組成一個(gè)集群共同對(duì)外服務(wù),提高整體處理能力,改善性能。在代碼層面,也可以通過(guò)使用多線(xiàn)程、改善內(nèi)存管理等手段優(yōu)化性能。
在數(shù)據(jù)庫(kù)服務(wù)器端,索引、緩存、SQL 優(yōu)化等性能優(yōu)化手段都已經(jīng)比較成熟。而方興未艾的 NoSQL 數(shù)據(jù)庫(kù)通過(guò)優(yōu)化數(shù)據(jù)模型、存儲(chǔ)結(jié)構(gòu)、伸縮特性等手段在性能方面的優(yōu)勢(shì)也日趨明顯。
衡量網(wǎng)站性能有一系列指標(biāo),重要的有響應(yīng)時(shí)間、TPS、系統(tǒng)性能計(jì)數(shù)器等,通過(guò)測(cè)試這些指標(biāo)以確定系統(tǒng)設(shè)計(jì)是否達(dá)到目標(biāo)。這些指標(biāo)也是網(wǎng)站監(jiān)控的重要參數(shù),通過(guò)監(jiān)控這些指標(biāo)可以分析系統(tǒng)瓶頸,預(yù)測(cè)網(wǎng)站容量,并對(duì)異常指標(biāo)進(jìn)行報(bào)警,保障系統(tǒng)可用性。
對(duì)于網(wǎng)站而言,性能符合預(yù)期僅僅是必要條件,因?yàn)闊o(wú)法預(yù)知網(wǎng)站可能會(huì)面臨的訪(fǎng)問(wèn)壓力,所以必須要考察系統(tǒng)在高并發(fā)訪(fǎng)問(wèn)情況下,超出負(fù)載設(shè)計(jì)能力的情況下可能會(huì)出現(xiàn)的性能問(wèn)題。網(wǎng)站需要長(zhǎng)時(shí)間持續(xù)運(yùn)行,還必須保證系統(tǒng)在持續(xù)運(yùn)行且訪(fǎng)問(wèn)壓力不均勻的情況下保持穩(wěn)定的性能特性。
  可用性
對(duì)于大型網(wǎng)站而言,特別是知名網(wǎng)站,網(wǎng)站宕掉、服務(wù)不可用是一個(gè)重大的事故,輕則影響網(wǎng)站聲譽(yù),重則可能會(huì)攤上官司。對(duì)于電子商務(wù)類(lèi)網(wǎng)站,網(wǎng)站不可用還意味著損失金錢(qián)和用戶(hù)。因此幾乎所有網(wǎng)站都承諾 7×24 可用,但事實(shí)上任何網(wǎng)站都不可能達(dá)到完全的 7×24 可用,總會(huì)有一些故障時(shí)間,扣除這些故障時(shí)間,就是網(wǎng)站的總可用時(shí)間,這個(gè)時(shí)間可以換算成網(wǎng)站的可用性指標(biāo),以此衡量網(wǎng)站的可用性,一些知名大型網(wǎng)站可以做到 4 個(gè) 9 以上的可用性,也就是可用性超過(guò) 99.99%。
因?yàn)榫W(wǎng)站使用的服務(wù)器硬件通常是普通的商用服務(wù)器,這些服務(wù)器的設(shè)計(jì)目標(biāo)本身并不保證高可用,也就是說(shuō),很有可能會(huì)出現(xiàn)服務(wù)器硬件故障,也就是俗稱(chēng)的服務(wù)器宕機(jī)。大型網(wǎng)站通常都會(huì)有上萬(wàn)臺(tái)服務(wù)器,每天都必定會(huì)有一些服務(wù)器宕機(jī),因此網(wǎng)站高可用架構(gòu)設(shè)計(jì)的前提是必然會(huì)出現(xiàn)服務(wù)器宕機(jī),而高可用設(shè)計(jì)的目標(biāo)就是當(dāng)服務(wù)器宕機(jī)的時(shí)候,服務(wù)或者應(yīng)用依然可用。
網(wǎng)站高可用的主要手段是冗余,應(yīng)用部署在多臺(tái)服務(wù)器上同時(shí)提供訪(fǎng)問(wèn),數(shù)據(jù)存儲(chǔ)在多臺(tái)服務(wù)器上互相備份,任何一臺(tái)服務(wù)器宕機(jī)都不會(huì)影響應(yīng)用的整體可用,也不會(huì)導(dǎo)致數(shù)據(jù)丟失。
對(duì)于應(yīng)用服務(wù)器而言,多臺(tái)應(yīng)用服務(wù)器通過(guò)負(fù)載均衡設(shè)備組成一個(gè)集群共同對(duì)外提供服務(wù),任何一臺(tái)服務(wù)器宕機(jī),只需把請(qǐng)求切換到其他服務(wù)器就可實(shí)現(xiàn)應(yīng)用的高可用,但是一個(gè)前提條件是應(yīng)用服務(wù)器上不能保存請(qǐng)求的會(huì)話(huà)信息。否則服務(wù)器宕機(jī),會(huì)話(huà)丟失,即使將用戶(hù)請(qǐng)求轉(zhuǎn)發(fā)到其他服務(wù)器上也無(wú)法完成業(yè)務(wù)處理。對(duì)于存儲(chǔ)服務(wù)器,由于其上存儲(chǔ)著數(shù)據(jù),需要對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)備份,當(dāng)服務(wù)器宕機(jī)時(shí)需要將數(shù)據(jù)訪(fǎng)問(wèn)轉(zhuǎn)移到可用的服務(wù)器上,并進(jìn)行數(shù)據(jù)恢復(fù)以保證繼續(xù)有服務(wù)器宕機(jī)的時(shí)候數(shù)據(jù)依然可用。
除了運(yùn)行環(huán)境,網(wǎng)站的高可用還需要軟件開(kāi)發(fā)過(guò)程的質(zhì)量保證。通過(guò)預(yù)發(fā)布驗(yàn)證、自動(dòng)化測(cè)試、自動(dòng)化發(fā)布、灰度發(fā)布等手段,減少將故障引入線(xiàn)上環(huán)境的可能,避免故障范圍擴(kuò)大。
衡量一個(gè)系統(tǒng)架構(gòu)設(shè)計(jì)是否滿(mǎn)足高可用的目標(biāo),就是假設(shè)系統(tǒng)中任何一臺(tái)或者多臺(tái)服務(wù)器宕機(jī)時(shí),以及出現(xiàn)各種不可預(yù)期的問(wèn)題時(shí),系統(tǒng)整體是否依然可用。
  伸縮性
大型網(wǎng)站需要面對(duì)大量用戶(hù)的高并發(fā)訪(fǎng)問(wèn)和存儲(chǔ)海量數(shù)據(jù),不可能只用一臺(tái)服務(wù)器就處理全部用戶(hù)請(qǐng)求,存儲(chǔ)全部數(shù)據(jù)。網(wǎng)站通過(guò)集群的方式將多臺(tái)服務(wù)器組成一個(gè)整體共同提供服務(wù)。所謂伸縮性是指通過(guò)不斷向集群中加入服務(wù)器的手段來(lái)緩解不斷上升的用戶(hù)并發(fā)訪(fǎng)問(wèn)壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。
衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn)就是是否可以用多臺(tái)服務(wù)器構(gòu)建集群,是否容易向集群中添加新的服務(wù)器。加入新的服務(wù)器后是否可以提供和原來(lái)的服務(wù)器無(wú)差別的服務(wù)。集群中可容納的總的服務(wù)器數(shù)量是否有限制。
對(duì)于應(yīng)用服務(wù)器集群,只要服務(wù)器上不保存數(shù)據(jù),所有服務(wù)器都是對(duì)等的,通過(guò)使用合適的負(fù)載均衡設(shè)備就可以向集群中不斷加入服務(wù)器。
對(duì)于緩存服務(wù)器集群,加入新的服務(wù)器可能會(huì)導(dǎo)致緩存路由失效,進(jìn)而導(dǎo)致集群中大部分緩存數(shù)據(jù)都無(wú)法訪(fǎng)問(wèn)。雖然緩存的數(shù)據(jù)可以通過(guò)數(shù)據(jù)庫(kù)重新加載,但是如果應(yīng)用已經(jīng)嚴(yán)重依賴(lài)緩存,可能會(huì)導(dǎo)致整個(gè)網(wǎng)站崩潰。需要改進(jìn)緩存路由算法保證緩存數(shù)據(jù)的可訪(fǎng)問(wèn)性。
關(guān)系數(shù)據(jù)庫(kù)雖然支持?jǐn)?shù)據(jù)復(fù)制,主從熱備等機(jī)制,但是很難做到大規(guī)模集群的可伸縮性,因此關(guān)系數(shù)據(jù)庫(kù)的集群伸縮性方案必須在數(shù)據(jù)庫(kù)之外實(shí)現(xiàn),通過(guò)路由分區(qū)等手段將部署有多個(gè)數(shù)據(jù)庫(kù)的服務(wù)器組成一個(gè)集群。
至于大部分 NoSQL 數(shù)據(jù)庫(kù)產(chǎn)品,由于其先天就是為海量數(shù)據(jù)而生,因此其對(duì)伸縮性的支持通常都非常好,可以做到在較少運(yùn)維參與的情況下實(shí)現(xiàn)集群規(guī)模的線(xiàn)性伸縮。
  擴(kuò)展性
不同于其他架構(gòu)要素主要關(guān)注非功能性需求,網(wǎng)站的擴(kuò)展性架構(gòu)直接關(guān)注網(wǎng)站的功能需求。網(wǎng)站快速發(fā)展,功能不斷擴(kuò)展,如何設(shè)計(jì)網(wǎng)站的架構(gòu)使其能夠快速響應(yīng)需求變化,是網(wǎng)站可擴(kuò)展架構(gòu)主要的目的。
衡量網(wǎng)站架構(gòu)擴(kuò)展性好壞的主要標(biāo)準(zhǔn)就是在網(wǎng)站增加新的業(yè)務(wù)產(chǎn)品時(shí),是否可以實(shí)現(xiàn)對(duì)現(xiàn)有產(chǎn)品透明無(wú)影響,不需要任何改動(dòng)或者很少改動(dòng)既有業(yè)務(wù)功能就可以上線(xiàn)新產(chǎn)品。不同產(chǎn)品之間是否很少耦合,一個(gè)產(chǎn)品改動(dòng)對(duì)其他產(chǎn)品無(wú)影響,其他產(chǎn)品和功能不需要受牽連進(jìn)行改動(dòng)。
網(wǎng)站可伸縮架構(gòu)的主要手段是事件驅(qū)動(dòng)架構(gòu)和分布式服務(wù)。
事件驅(qū)動(dòng)架構(gòu)在網(wǎng)站通常利用消息隊(duì)列實(shí)現(xiàn),將用戶(hù)請(qǐng)求和其他業(yè)務(wù)事件構(gòu)造成消息發(fā)布到消息隊(duì)列,消息的處理者作為消費(fèi)者從消息隊(duì)列中獲取消息進(jìn)行處理。通過(guò)這種方式將消息產(chǎn)生和消息處理分離開(kāi)來(lái),可以透明地增加新的消息生產(chǎn)者任務(wù)或者新的消息消費(fèi)者任務(wù)。
分布式服務(wù)則是將業(yè)務(wù)和可復(fù)用服務(wù)分離開(kāi)來(lái),通過(guò)分布式服務(wù)框架調(diào)用。新增產(chǎn)品可以通過(guò)調(diào)用可復(fù)用的服務(wù)實(shí)現(xiàn)自身的業(yè)務(wù)邏輯,而對(duì)現(xiàn)有產(chǎn)品沒(méi)有任何影響??蓮?fù)用服務(wù)升級(jí)變更的時(shí)候,也可以通過(guò)提供多版本服務(wù)對(duì)應(yīng)用實(shí)現(xiàn)透明升級(jí),不需要強(qiáng)制應(yīng)用同步變更。
大型網(wǎng)站為了保持市場(chǎng)地位,還會(huì)吸引第三方開(kāi)發(fā)者,調(diào)用網(wǎng)站服務(wù),使用網(wǎng)站數(shù)據(jù)開(kāi)發(fā)周邊產(chǎn)品,擴(kuò)展網(wǎng)站業(yè)務(wù)。第三方開(kāi)發(fā)者使用網(wǎng)站服務(wù)的主要途徑是大型網(wǎng)站提供的開(kāi)放平臺(tái)接口。
  安全性
互聯(lián)網(wǎng)是開(kāi)放的,任何人在任何地方都可以訪(fǎng)問(wèn)網(wǎng)站。網(wǎng)站的安全架構(gòu)就是保護(hù)網(wǎng)站不受惡意訪(fǎng)問(wèn)和攻擊,保護(hù)網(wǎng)站的重要數(shù)據(jù)不被竊取。衡量網(wǎng)站安全架構(gòu)的標(biāo)準(zhǔn)就是針對(duì)現(xiàn)存和潛在的各種攻擊與竊密手,是否有可靠的應(yīng)對(duì)策略。
  經(jīng)驗(yàn)小結(jié)
性能、可用性、伸縮性、擴(kuò)展性和安全性是網(wǎng)站架構(gòu)最核心的幾個(gè)要素,這幾個(gè)問(wèn)題解決了,大型網(wǎng)站架構(gòu)設(shè)計(jì)的大部分挑戰(zhàn)也就克服了。
本文節(jié)選自李智慧老師《大型網(wǎng)站技術(shù)架構(gòu):核心原理與架構(gòu)分析》一書(shū)。
 
CONTACT / 聯(lián)系方式
瑞安市優(yōu)博科技有限公司
RUIAN YOUBO TECHUOLOGY CO.,LTD.
地址:中國(guó)·浙江省瑞安市塘下鎮(zhèn)鮑田建城南路114號(hào)
電話(huà):0577-65382333   25652222
傳真:0577-65388088   25885200
網(wǎng)址:www.youboy.net
中文網(wǎng)址:www.優(yōu)博科技.com
E-mail:info#youboy.net (請(qǐng)把#改成@)
您可以直接撥打我們的全國(guó)統(tǒng)一服務(wù)熱線(xiàn)
或者掃描右邊的二維碼添加優(yōu)博科技的微信號(hào)。
400 666 1789
? 2008-2024 Ruian Youbo Technology Co., Ltd.  All Rights Reserved.