方案設(shè)計(jì)基本步驟 門戶網(wǎng)站的技術(shù)架構(gòu)怎樣設(shè)計(jì)方案?
門戶網(wǎng)站的技術(shù)架構(gòu)怎樣設(shè)計(jì)方案?我參與設(shè)計(jì)過一個(gè)行業(yè)門戶網(wǎng)站,感覺解決大型網(wǎng)站面臨的高并發(fā)訪問、海量數(shù)據(jù)處理、高可靠運(yùn)行等一系列問題與挑戰(zhàn),在實(shí)踐中提出了許多解決方案,以實(shí)現(xiàn)網(wǎng)站高性能、高可用、 易伸
門戶網(wǎng)站的技術(shù)架構(gòu)怎樣設(shè)計(jì)方案?
我參與設(shè)計(jì)過一個(gè)行業(yè)門戶網(wǎng)站,感覺解決大型網(wǎng)站面臨的高并發(fā)訪問、海量數(shù)據(jù)處理、高可靠運(yùn)行等一系列問題與挑戰(zhàn),在實(shí)踐中提出了許多解決方案,以實(shí)現(xiàn)網(wǎng)站高性能、高可用、 易伸縮、可擴(kuò)展、安全等各種技術(shù)架構(gòu)目標(biāo)。這些解決方案又被更多網(wǎng)站重復(fù)使用,從而逐漸形成大型網(wǎng)站架構(gòu)模式。下面我主要從分布式的設(shè)計(jì)談下:
1、分布式應(yīng)用和服務(wù): 將分層和分割后的應(yīng)用和服務(wù)模塊分布式部署,除了可以改善網(wǎng)站性能和并發(fā)性、加快開發(fā)和發(fā)布速度、減少數(shù)據(jù)庫連接資源消耗外;還可以使不同應(yīng)用復(fù)用共同的服務(wù),便于業(yè)務(wù)功能擴(kuò)展。
2、分布式靜態(tài)資源: 網(wǎng)站的靜態(tài)資源如 JS,CSS,Logo 圖片等資源獨(dú)立分布式部署,并采用獨(dú)立的域名,即人們常說的動(dòng)靜分離。靜態(tài)資源分布式部署可以減輕應(yīng)用服務(wù)器的負(fù)載壓力;通過使用獨(dú)立域名加快瀏覽器并發(fā)加載的速度;由負(fù)責(zé)用戶體驗(yàn)的團(tuán)隊(duì)進(jìn)行開發(fā)維護(hù)有利于網(wǎng)站分工合作,使不同技術(shù)工種術(shù)業(yè)有專攻。
3、分布式數(shù)據(jù)和存儲(chǔ): 大型網(wǎng)站需要處理以 P 為單位的海量數(shù)據(jù),單臺(tái)計(jì)算機(jī)無法提供如此大的存儲(chǔ)空間,這些數(shù)據(jù)需要分布式存儲(chǔ)。除了對(duì)傳統(tǒng)的關(guān)系數(shù)據(jù)庫進(jìn)行分布式部署外,為網(wǎng)站應(yīng)用而生的各種 NoSQL 產(chǎn)品幾乎都是分布式的。
4、分布式計(jì)算: 嚴(yán)格說來,應(yīng)用、服務(wù)、實(shí)時(shí)數(shù)據(jù)處理都是計(jì)算,網(wǎng)站除了要處理這些在線業(yè)務(wù),還有很大一部分用戶沒有直觀感受的后臺(tái)業(yè)務(wù)要處理,包括搜索引擎的索引構(gòu)建、數(shù)據(jù)倉庫的數(shù)據(jù)分析統(tǒng)計(jì)等。這些業(yè)務(wù)的計(jì)算規(guī)模非常龐大,目前網(wǎng)站普遍使用 Hadoop 及其 MapReduce 分布式計(jì)算框架進(jìn)行此類批處理計(jì)算,其特點(diǎn)是移動(dòng)計(jì)算而不是移動(dòng)數(shù)據(jù),將計(jì)算程序分發(fā)到數(shù)據(jù)所在的位置以加速計(jì)算和分布式計(jì)算。
總之分布式設(shè)計(jì)思路比較多,還有可以支持網(wǎng)站線上服務(wù)器配置實(shí)時(shí)更新的分布式配置;分布式環(huán)境下實(shí)現(xiàn)并發(fā)和協(xié)同的分布式鎖;支持云存儲(chǔ)的分布式文件系統(tǒng)等。
如何做好網(wǎng)頁設(shè)計(jì)?
網(wǎng)頁設(shè)計(jì)相對(duì)帶硬件知識(shí)的嵌入式編程和PC端網(wǎng)絡(luò)編程的難度要小多了,一個(gè)簡單的網(wǎng)頁只需要學(xué)習(xí)html,css,js這三個(gè)即可。最后有C語言的基礎(chǔ)。
我學(xué)習(xí)網(wǎng)頁在2003年非典在家沒事上網(wǎng),想做一個(gè)網(wǎng)上在線運(yùn)行的CRC計(jì)算器,即網(wǎng)頁版本的CRC計(jì)算器。
當(dāng)時(shí)只要實(shí)現(xiàn)功能即可,界面不需好看,故只需要html js(因?yàn)樾枰猤b2312漢字編碼,故需要vbs)。
因?yàn)楸救司褪歉丬浻布?,學(xué)習(xí)的編程語言眾多,故非??斓娜腴T并實(shí)現(xiàn)了初步的在線離線運(yùn)行的功能。
一直在IE下運(yùn)行,即只能在PC端的windows環(huán)境下運(yùn)行,其他瀏覽器都無法運(yùn)行(不支持vbs),所以兼容性太差。
在網(wǎng)上運(yùn)行13年后,終于下決心做全兼容,可以在任何平臺(tái)上運(yùn)行。
為了美化界面,有臨時(shí)學(xué)習(xí)了css,終于自己需要的HotCRC計(jì)算器實(shí)現(xiàn)了全兼容。
所以,不要萬事求人!只要自己想做,沒有不能做的事才行。