2023-11-02 分類(lèi): 網(wǎng)站建設(shè)
作者:acejoy 原文:https://acejoy.com/2017/12/19/350/
我喜歡讀書(shū),而且我讀得很快。我一直在研究學(xué)習(xí)方法,我的學(xué)習(xí)能力還處于巔峰狀態(tài)。我特別喜歡主題閱讀,其中的細(xì)節(jié)因重點(diǎn)而異。事實(shí)上,這是對(duì)一類(lèi)材料進(jìn)行深入研究的時(shí)期,它們的內(nèi)容可以相互補(bǔ)充和驗(yàn)證,重復(fù)的內(nèi)容視為復(fù)習(xí)。
本文算是近期網(wǎng)站架構(gòu)研究的一個(gè)小總結(jié)。當(dāng)然,它肯定不全面。這個(gè)領(lǐng)域非常大。如果后面有新的見(jiàn)解,繼續(xù)補(bǔ)充說(shuō)明。不過(guò)核心概念和基本原理很容易理解,剩下的就是工具的應(yīng)用和開(kāi)發(fā)的細(xì)節(jié)了。然而,“魔鬼在細(xì)節(jié)中”,不要以為建筑師的工作很容易做到。
架構(gòu)問(wèn)題是如何產(chǎn)生的?
當(dāng)然,它是信息社會(huì)從單機(jī)時(shí)代向網(wǎng)絡(luò)時(shí)代推進(jìn)的產(chǎn)物。在單機(jī)時(shí)代,人們通常會(huì)買(mǎi)一臺(tái) pC,安裝一臺(tái),然后玩玩。各種應(yīng)用基本隔離。如果要傳輸數(shù)據(jù),軟盤(pán),刻錄CD,復(fù)制硬盤(pán)……因?yàn)榫退阋院笥幸恍┚W(wǎng)絡(luò)應(yīng)用,幾十K的網(wǎng)速還能傳輸什么。所以那個(gè)時(shí)候,應(yīng)用軟件、游戲等基本都是在軟盤(pán)/CD上發(fā)行的,網(wǎng)絡(luò)也不能指望。
這個(gè)時(shí)代的軟件系統(tǒng)也很粗糙,架構(gòu)的思路哪里講,單機(jī)正常運(yùn)行也不錯(cuò),知足吧。后來(lái)有了一些進(jìn)展,出現(xiàn)了所謂“C/S”、“b/S”架構(gòu)的應(yīng)用模式,目前還處于原始階段。
架構(gòu)思維和相關(guān)技術(shù)伴隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展而來(lái)。互聯(lián)網(wǎng)的速度開(kāi)始提高,大量的網(wǎng)民出現(xiàn),大量的信息開(kāi)始在網(wǎng)上被訪問(wèn)。網(wǎng)絡(luò)游戲、電子商務(wù)等各種網(wǎng)絡(luò)應(yīng)用迅速發(fā)展。過(guò)去10年網(wǎng)站開(kāi)發(fā),移動(dòng)終端開(kāi)始流行,原本的桌面操作系統(tǒng)變成了一種終端,不再是主角。外部環(huán)境的變化和需求催生了相關(guān)技術(shù)的發(fā)展。原來(lái)的單機(jī)應(yīng)用程序已經(jīng)轉(zhuǎn)移到網(wǎng)絡(luò),然后擴(kuò)展到手機(jī)。應(yīng)用時(shí)代的開(kāi)發(fā)技術(shù)顯然是不夠的。如果機(jī)器上安裝了之前的程序,如果出現(xiàn)或者性能不佳的情況,也有可能是本地環(huán)境/硬件問(wèn)題造成的。本軟件僅供您使用,與他人無(wú)關(guān)。但是,該網(wǎng)站對(duì)全世界開(kāi)放,至少對(duì)一個(gè)國(guó)家的網(wǎng)民開(kāi)放。如果操作良好,它會(huì)被大量用戶使用。在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)中,這種情況下要考慮的問(wèn)題與前一個(gè)時(shí)代完全不同。
即使是移動(dòng)應(yīng)用,也基本是網(wǎng)站相關(guān)技術(shù)支持的,因?yàn)樗枰cWeb集成。依賴您自己的自定義協(xié)議和模式?利用現(xiàn)有成熟的工業(yè)技術(shù),哪里有可靠、快速的開(kāi)發(fā)和易于擴(kuò)展的地方。
我看到的架構(gòu)知識(shí)和技術(shù)大部分來(lái)自流量巨大的大型網(wǎng)站,尤其是電子商務(wù)網(wǎng)站。這其實(shí)很容易理解。電子商務(wù)這幾年發(fā)展很快,網(wǎng)站經(jīng)常搞促銷(xiāo)和秒殺。這些活動(dòng)給網(wǎng)站系統(tǒng)帶來(lái)了巨大的挑戰(zhàn)和巨大的壓力。經(jīng)過(guò)反復(fù)探索,相關(guān)開(kāi)發(fā)者總結(jié)出了不錯(cuò)的知識(shí)。阿里巴巴雙11零點(diǎn)的流量,足以壓垮任何沒(méi)有精心準(zhǔn)備的系統(tǒng)。爆款瞬間秒殺,瞬間流量也非常巨大。海量數(shù)據(jù)和高并發(fā)要求是典型特征。這個(gè)時(shí)候,不要指望單機(jī)的性能就能解決很多問(wèn)題。不管是什么軟件/硬件,
撰寫(xiě)本段時(shí),小米正在進(jìn)行促銷(xiāo)活動(dòng),小米商城已關(guān)閉??磥?lái)網(wǎng)站結(jié)構(gòu)還是沒(méi)做好!:-)
怎么做?谷歌是怎么做到的?會(huì)不會(huì)是谷歌有幾臺(tái)用于搜索服務(wù)的巨型服務(wù)器?沒(méi)用,已經(jīng)發(fā)現(xiàn)不行了。其他場(chǎng)景類(lèi)似。
網(wǎng)站架構(gòu)的核心概念是什么?
其實(shí)我覺(jué)得并不復(fù)雜,大部分核心屬性都很簡(jiǎn)單。
架構(gòu)的理念是不斷發(fā)現(xiàn)系統(tǒng)的瓶頸和弱點(diǎn),通過(guò)分治、緩存、異步等手段逐步解決,平衡處理系統(tǒng)各種需求(性能、安全性)的過(guò)程、可用性、可擴(kuò)展性、可擴(kuò)展性……)。這形成了結(jié)構(gòu)。
很容易理解,就是:兵來(lái)?yè)酰畞?lái)掩。建筑必須做設(shè)計(jì)規(guī)劃,你必須知道該做什么。但是,不應(yīng)該過(guò)度設(shè)計(jì),也沒(méi)有必要或完全照搬大網(wǎng)站的做法。它應(yīng)該適合你?!疤詫毦褪沁@樣做的!” - 你不是淘寶,你也不是谷歌。業(yè)務(wù)需求變化很快,留出適量的冗余就足夠了,否則會(huì)造成資源的浪費(fèi)。架構(gòu)隨著業(yè)務(wù)而變化。如果沒(méi)有業(yè)務(wù),則需要更改。
必須完全摒棄獨(dú)立思考。當(dāng)用戶的瀏覽器訪問(wèn)一個(gè)網(wǎng)站頁(yè)面時(shí),從打開(kāi)網(wǎng)址到最終看到結(jié)果,中間有一條很長(zhǎng)的操作鏈。通常的訪問(wèn)順序是:瀏覽器發(fā)送請(qǐng)求->DNS解析域名->瀏覽器連接服務(wù)器->服務(wù)器訪問(wèn)數(shù)據(jù)庫(kù)->服務(wù)器計(jì)算數(shù)據(jù)結(jié)果->返回?cái)?shù)據(jù)給服務(wù)器瀏覽器。文章其實(shí)是從各個(gè)鏈條上做的。每個(gè)不同的動(dòng)作都有機(jī)會(huì)增加流量的擴(kuò)展和分解網(wǎng)站建設(shè),于是架構(gòu)產(chǎn)生,系統(tǒng)開(kāi)始擴(kuò)展。
DNS解析域名,智能解析到不同區(qū)域、不同服務(wù)器區(qū)域,就近分配計(jì)算資源。
當(dāng)瀏覽器連接到服務(wù)器時(shí),它可以使用負(fù)載均衡、反向代理等技術(shù)訪問(wèn)服務(wù)器集群,并將訪問(wèn)分發(fā)到不同的設(shè)備,但可以返回相同的結(jié)果。
服務(wù)器在訪問(wèn)數(shù)據(jù)庫(kù)時(shí),可以根據(jù)數(shù)據(jù)庫(kù)讀多寫(xiě)少的現(xiàn)象進(jìn)行讀寫(xiě)分離。應(yīng)用還可以用來(lái)緩存熱點(diǎn)數(shù)據(jù),分割業(yè)務(wù)塊,緩解數(shù)據(jù)庫(kù)訪問(wèn)壓力。以后也可以作為訪問(wèn)代理網(wǎng)站開(kāi)發(fā),數(shù)據(jù)存儲(chǔ)集群化。
服務(wù)器計(jì)算數(shù)據(jù)結(jié)果,可以使用適當(dāng)?shù)恼Z(yǔ)言和技術(shù)對(duì)數(shù)據(jù)進(jìn)行適度緩存。可以使用消息隊(duì)列、RpC、異步處理和平滑訪問(wèn)洪峰。
返回?cái)?shù)據(jù)給瀏覽器,系統(tǒng)可以添加CDN就近訪問(wèn)靜態(tài)資源??梢源罅κ褂脼g覽器緩存來(lái)避免不必要的更新和訪問(wèn)需求。
看,每一筆交易都跟著一堆知識(shí),而且是非常專業(yè)的工作。這需要各專業(yè)人士的配合。當(dāng)然,由于IT行業(yè)的發(fā)展,各個(gè)鏈都有好的資源/專業(yè)的服務(wù)商/軟件/工具鏈/中間件產(chǎn)品,開(kāi)發(fā)出來(lái)供選擇使用。具體來(lái)說(shuō),在需要的時(shí)候網(wǎng)站制作,研究一下使用細(xì)節(jié)以及如何搭配。
在許多地方,它在需要時(shí)使用。很多事情,沒(méi)有遇到就想不到重點(diǎn)或者坑,所以冷靜的接受吧。
網(wǎng)站架構(gòu)的常見(jiàn)演進(jìn)路徑是什么?
使用圖片來(lái)表示它是理想的。直接復(fù)制到這里。圖片來(lái)自李志輝的《大型網(wǎng)站的技術(shù)架構(gòu)——核心原理與案例分析》一書(shū)。注意它的變化不是固定的,不要死板的應(yīng)用,因?yàn)樗且粋€(gè)電子商務(wù)業(yè)務(wù),它的進(jìn)化過(guò)程和設(shè)計(jì)可能不適合你的應(yīng)用,你必須學(xué)會(huì)??靈活地處理它。
1、初始站點(diǎn)架構(gòu)
2、應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離
3、網(wǎng)站使用緩存
4、應(yīng)用服務(wù)器集群部署
5、數(shù)據(jù)庫(kù)讀寫(xiě)分離
6、網(wǎng)站使用反向代理和CDN加速訪問(wèn)
7、使用分布式文件和分布式數(shù)據(jù)庫(kù)系統(tǒng)
8、使用系統(tǒng)和搜索引擎
9、應(yīng)用拆分
10、分布式服務(wù)
網(wǎng)站架構(gòu)常用的工具包有哪些?
其實(shí)就是根據(jù)需求和業(yè)務(wù)特點(diǎn)做出合適的選擇,開(kāi)發(fā)這些工具包是為了解決具體的問(wèn)題。但是常用的產(chǎn)品基本上都是平臺(tái)上的開(kāi)源產(chǎn)品,而且很多中間件/工具包都是用Java開(kāi)發(fā)的——它的常青樹(shù)是有原因的。但是很多中小型網(wǎng)站也使用pHp,因?yàn)榭梢蕴幚淼臄?shù)據(jù)量足夠,開(kāi)發(fā)方便,成本也比較低。一些產(chǎn)品應(yīng)用廣泛,比如,幾乎已經(jīng)成為標(biāo)準(zhǔn)架構(gòu),甚至可以從一開(kāi)始就用來(lái)緩存系統(tǒng)的熱點(diǎn)數(shù)據(jù),以減少數(shù)據(jù)庫(kù)的訪問(wèn)和計(jì)算。
其他工具包,在需要時(shí)找到合適的工具包。
隨著信息社會(huì)的發(fā)展和進(jìn)步,新的產(chǎn)品/應(yīng)用會(huì)出現(xiàn),系統(tǒng)架構(gòu)也會(huì)進(jìn)一步演進(jìn)以滿足需求。
新聞標(biāo)題:網(wǎng)站開(kāi)發(fā)單機(jī)時(shí)代的開(kāi)發(fā)技術(shù),明顯不夠,可別以為的活好做動(dòng)態(tài)網(wǎng)站后臺(tái)開(kāi)發(fā)
網(wǎng)站路徑:http://m.rwnh.cn/news9/292109.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、虛擬主機(jī)、App設(shè)計(jì)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容