999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

實(shí)例淺析網(wǎng)站架構(gòu)的設(shè)計(jì)和調(diào)整

2018-04-03 19:13:47
關(guān)鍵詞:頁(yè)面數(shù)據(jù)庫(kù)用戶

徐 立

(商丘職業(yè)技術(shù)學(xué)院 軟件學(xué)院,河南 商丘 476100)

軟件的架構(gòu)既是一個(gè)軟件的骨架,又是其靈魂. David Garlan[1]92-97認(rèn)為軟件架構(gòu)要解決如下層面的問(wèn)題:“在計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)之外,設(shè)計(jì)并確定系統(tǒng)整體結(jié)構(gòu)成了新的問(wèn)題.結(jié)構(gòu)問(wèn)題包括總體組織結(jié)構(gòu)和全局控制結(jié)構(gòu);通信、同步和數(shù)據(jù)訪問(wèn)的協(xié)議;設(shè)計(jì)元素的功能分配;物理分布;設(shè)計(jì)元素的組成;定標(biāo)與性能;備選設(shè)計(jì)的選擇.”一個(gè)合理的架構(gòu)設(shè)計(jì)方案,可以使軟件開(kāi)發(fā)流程變得順暢易行;可以使程序員在愉悅的環(huán)境下工作;可以使軟件在其運(yùn)行場(chǎng)景內(nèi)高效地運(yùn)行;在場(chǎng)景變換時(shí)也能具有良好的可擴(kuò)展性和可維護(hù)性.由此可見(jiàn),軟件架構(gòu)設(shè)計(jì)至關(guān)重要,它決定著一個(gè)軟件產(chǎn)品的成敗.在架構(gòu)設(shè)計(jì)時(shí),既要避免“牛刀殺雞”,又要避免“小馬拉大車”,下面將以實(shí)例子來(lái)淺析軟件架構(gòu)設(shè)計(jì).

1 低成本快速開(kāi)發(fā)的架構(gòu)設(shè)計(jì)

1.1 應(yīng)用場(chǎng)景

小創(chuàng)型互聯(lián)網(wǎng)公司有了好的設(shè)計(jì)構(gòu)思后,需要迅速低成本地將其轉(zhuǎn)化為產(chǎn)品,進(jìn)而驗(yàn)證產(chǎn)品設(shè)計(jì)的好壞.

1.2 場(chǎng)景分析

有產(chǎn)品的設(shè)計(jì),有未來(lái)的盈利規(guī)劃,但由于是創(chuàng)業(yè)型公司,依靠的資金來(lái)源主要是個(gè)人積蓄,在做軟件架構(gòu)設(shè)計(jì)時(shí)要充分考慮以下需求:

第一,上線要快.互聯(lián)網(wǎng)行業(yè),有了構(gòu)思,要迅速轉(zhuǎn)換為產(chǎn)品,進(jìn)而驗(yàn)證其能否成功;第二,投入要少.個(gè)人積蓄有限且不知道產(chǎn)品上線后效果如何,能否成功是個(gè)未知數(shù),先期投入要盡量少,以最低成本滿足特定訪問(wèn)量;第三,設(shè)計(jì)要靈活.盡量低耦合,擴(kuò)展性要好.

1.3 架構(gòu)設(shè)計(jì)

選用小而美的框架LAMP[2]50-52,LAMP是架構(gòu)中用到的幾種技術(shù)及開(kāi)源軟件的首字母縮寫.A代表http服務(wù)器采用Apache,是最受歡迎的開(kāi)源web服務(wù)器;L代表Linux是開(kāi)源的操作系統(tǒng);M代表Mysql,架構(gòu)選擇開(kāi)源的Mysql數(shù)據(jù)庫(kù)用來(lái)管理數(shù)據(jù),Mysql是多線程、多用戶的支持SQL語(yǔ)言的數(shù)據(jù)庫(kù)管理系統(tǒng);P代表PHP,它是一種編程語(yǔ)言,適合快速開(kāi)發(fā)Web系統(tǒng).由于初期訪問(wèn)量較小,其物理架構(gòu)也非常簡(jiǎn)單,Web服務(wù)器和數(shù)據(jù)庫(kù)以及文件系統(tǒng)(如頁(yè)面html緩存、圖片等)均部署在同一臺(tái)托管服務(wù)器上.

該架構(gòu)非常輕量,性能穩(wěn)定,被很多大型互聯(lián)網(wǎng)公司使用,如Yahoo和維基百科.借助該架構(gòu),一般二百人日的工作量即可完成開(kāi)發(fā),網(wǎng)站就能上線調(diào)試運(yùn)行.

2 訪問(wèn)量劇增時(shí)性能成瓶頸

2.1 應(yīng)用場(chǎng)景

網(wǎng)站上線后,經(jīng)過(guò)積極推廣,產(chǎn)品符合用戶要求,網(wǎng)站的UI設(shè)計(jì)用戶體驗(yàn)反映良好.網(wǎng)站的注冊(cè)用戶逐日遞增,注冊(cè)用戶中活躍用戶占比高達(dá)30%左右,已經(jīng)可以爭(zhēng)取到專業(yè)風(fēng)投公司的資金.然而,隨著用戶量的增多,網(wǎng)站運(yùn)行不如剛上線時(shí)流暢,頁(yè)面常出現(xiàn)白頁(yè),而且經(jīng)常看不到頁(yè)面上的圖片;用戶提交表單時(shí),始終提示“正在努力為您提交”,而且偶爾提交成功后,上傳的圖片卻丟失.這是網(wǎng)站的性能出現(xiàn)了問(wèn)題,也許之前的架構(gòu)已經(jīng)“不堪重負(fù)”了,到了該改進(jìn)的時(shí)候.

2.2 場(chǎng)景分析

由于之前考慮低成本快速上線的需求,加上前期數(shù)據(jù)量較少,將文件存儲(chǔ)和應(yīng)用程序及數(shù)據(jù)庫(kù)均部署在同一臺(tái)服務(wù)器上.隨著注冊(cè)用戶及活躍用戶的遞增,網(wǎng)站會(huì)出現(xiàn)如下問(wèn)題.

2.2.1 存儲(chǔ)壓力

網(wǎng)站在運(yùn)營(yíng)過(guò)程中,用戶產(chǎn)生的大量圖片需要占用存儲(chǔ)空間,頁(yè)面的內(nèi)容以html形式存儲(chǔ),也會(huì)占用存儲(chǔ)空間,雖然對(duì)于非大型網(wǎng)站而言,數(shù)據(jù)存儲(chǔ)一般不會(huì)對(duì)整個(gè)系統(tǒng)性能造成影響,但對(duì)于目前只有一臺(tái)服務(wù)器的情況,仍然會(huì)表現(xiàn)出存儲(chǔ)壓力.

2.2.2 數(shù)據(jù)庫(kù)“寫”操作壓力

活躍用戶在網(wǎng)站上的行為會(huì)造成大量的寫操作,比如換個(gè)頭像、寫條評(píng)論、發(fā)表個(gè)留言、訂購(gòu)件商品,這些都會(huì)對(duì)數(shù)據(jù)庫(kù)進(jìn)行寫操作.當(dāng)壓力達(dá)到一定限度,就會(huì)出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象,用戶反映的頁(yè)面不顯示,已上傳的圖片的問(wèn)題,就是由于圖片已經(jīng)上傳成功但是其存儲(chǔ)路徑?jīng)]有成功地寫進(jìn)Mysql數(shù)據(jù)庫(kù)造成的.

2.2.3 流量壓力主要來(lái)自圖片

網(wǎng)站上的文章、商品等內(nèi)容上會(huì)有大量的圖片,圖片是該網(wǎng)站流量壓力的最主要貢獻(xiàn)者.用戶反映的網(wǎng)站加載太慢,跟圖片占用大量的流量有很大關(guān)系,當(dāng)然還有其他諸多原因也會(huì)造成網(wǎng)站加載太慢.

2.2.4 用于服務(wù)器壓力

大量用戶同時(shí)在線,操作網(wǎng)站,系統(tǒng)響應(yīng)用戶的操作要靠應(yīng)用服務(wù)器來(lái)完成,應(yīng)用服務(wù)器負(fù)載達(dá)到極限時(shí)會(huì)崩潰.網(wǎng)站經(jīng)常“白頁(yè)”,就是Web服務(wù)器死機(jī)造成的.

2.3 架構(gòu)調(diào)整

架構(gòu)調(diào)整的主要措施是增加服務(wù)器,這不僅要將應(yīng)用分拆到專門的服務(wù)器上,而且每種應(yīng)用還要多臺(tái)服務(wù)器來(lái)支撐,做出該決策的依據(jù)一是目前的經(jīng)濟(jì)狀況,二是針對(duì)以后用戶量和流量增速的預(yù)測(cè),雖然目前來(lái)講可能有冗余,但這種冗余是值得的.具體調(diào)整方案如下.

2.3.1 對(duì)數(shù)據(jù)庫(kù)調(diào)整

有兩臺(tái)服務(wù)器一主一從支撐Mysql數(shù)據(jù)管理,數(shù)據(jù)庫(kù)端的設(shè)計(jì)可以歸納為“主從復(fù)制、讀寫分離”,也就是說(shuō),所有寫操作由主服務(wù)器來(lái)完成,數(shù)據(jù)被復(fù)制到從服務(wù)器,以達(dá)到數(shù)據(jù)的一致性,所有的讀操作由從服務(wù)器來(lái)完成,將來(lái)可以方便地?cái)U(kuò)展為一主多從,甚至主從均實(shí)現(xiàn)集群化.具體主從服務(wù)器的搭建步驟如下.

1)保證主從服務(wù)器mysql版本一致,修改root密碼;

2)修改主從服務(wù)器配置: #vi /etc/my.cnf

[mysqld]log-bin=mysql-bin

server-id=222,226//數(shù)值唯一,習(xí)慣選取IP地址末段;

3)重啟主從服務(wù)器并在主服務(wù)器上授權(quán)從服務(wù)器

#/usr/local/mysql/bin/mysql -uroot -pmttang

mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by '192.168.0.226'; //表示授權(quán)給IP為192.168.0.226的從服務(wù)器;

4)配置從服務(wù)器啟動(dòng)復(fù)制功能

mysql>change master to master_host='192.168.0.222',master_user='mysync',master_password='q123456', master_log_file='mysql-bin.000004',master_log_pos=308;

mysql>start slave;

5)編寫shell腳本監(jiān)控主從服務(wù)器狀態(tài),有問(wèn)題及時(shí)報(bào)警.

2.3.2 應(yīng)用服務(wù)器調(diào)整

1)增加服務(wù)器

由兩臺(tái)服務(wù)器負(fù)責(zé)支撐網(wǎng)站的應(yīng)用程序,兩臺(tái)服務(wù)器根據(jù)各自的狀況分?jǐn)傌?fù)載,當(dāng)其中一臺(tái)死機(jī)后,另一臺(tái)仍然可以正常提供服務(wù),避免了網(wǎng)站“白頁(yè)”問(wèn)題.

2)使用Memcache緩存“對(duì)象”

Memcache是一款高效的開(kāi)源分布式對(duì)象緩存工具,可以將網(wǎng)站運(yùn)營(yíng)中的查詢結(jié)果生成的對(duì)象進(jìn)行緩存,不僅可以減輕應(yīng)用服務(wù)器的壓力,同時(shí)減少對(duì)數(shù)據(jù)庫(kù)的查詢,也減輕了Mysql的從服務(wù)器壓力(從服務(wù)器負(fù)責(zé)讀操作).

當(dāng)然這種調(diào)整需要將應(yīng)用程序做簡(jiǎn)單的修改,以保證涉及數(shù)據(jù)庫(kù)寫操作的程序負(fù)責(zé)通知Memcache緩存對(duì)象因數(shù)據(jù)有變而失效,可能涉及數(shù)據(jù)庫(kù)讀操作的程序要看是否有緩存以及緩存是否失效來(lái)決定數(shù)據(jù)是從Memcache中取或者是從Mysql中取.

2.3.3 流量方面的調(diào)整

由于網(wǎng)站的主要流量壓力來(lái)自圖片,且用戶反映存在圖片加載緩慢的現(xiàn)象,這就需要將網(wǎng)站所有圖片單獨(dú)放置在網(wǎng)絡(luò)運(yùn)營(yíng)商提供的CDN服務(wù)器上[3]26-31,這種服務(wù)器流量的費(fèi)用較低,可以減輕網(wǎng)站流量方面的壓力,有利于圖片的加載,還可以降低費(fèi)用.

一般CDN服務(wù)器的計(jì)費(fèi)方式有按流量、按峰值和按帶寬3種.按流量計(jì)費(fèi)適用于平時(shí)流量不大,但是時(shí)不時(shí)會(huì)有短時(shí)間內(nèi)非常高的訪問(wèn)量;按峰值是按單位時(shí)間內(nèi)的最大流量計(jì)費(fèi),適用于流量不大且變動(dòng)不大的情況;按帶寬計(jì)費(fèi)適用于流量較大的情況,這次調(diào)整選用的是按帶寬計(jì)費(fèi)方式的某CDN產(chǎn)品.

2.3.4 其他調(diào)整

1)頁(yè)面靜態(tài)化

靜態(tài)化是指自己編寫程序,把一些經(jīng)常訪問(wèn)的頁(yè)面且變動(dòng)不大的頁(yè)面或頁(yè)面的某塊內(nèi)容(比如:主頁(yè)、商品詳細(xì)頁(yè)、文章瀏覽頁(yè)等)生成文件,以某種形式比如html代碼的形式保存在文件服務(wù)器上,當(dāng)這次高頻次被訪問(wèn)的頁(yè)面被訪問(wèn)時(shí),避免了多次向應(yīng)用服務(wù)器或數(shù)據(jù)庫(kù)發(fā)起請(qǐng)求,減輕了各個(gè)環(huán)節(jié)的壓力.

2)動(dòng)靜分離

使用squid反向代理緩存技術(shù),將靜態(tài)頁(yè)面、html、css和JavaScript代碼等進(jìn)行緩存,被訪問(wèn)時(shí)會(huì)從適合的緩存池中取的,也能避免各個(gè)環(huán)節(jié)的壓力.

通過(guò)該次大規(guī)模的架構(gòu)調(diào)整,新的架構(gòu)已經(jīng)具備了服務(wù)大型網(wǎng)站的能力,只要沒(méi)有特殊的業(yè)務(wù)需求(比如某些業(yè)務(wù)需要存儲(chǔ)海量圖片或音視頻文件,或者秒殺等業(yè)務(wù)觸發(fā)短時(shí)間內(nèi)高并發(fā)訪問(wèn)),該架構(gòu)兩三年內(nèi)不用調(diào)整,當(dāng)性能出現(xiàn)問(wèn)題時(shí),只需簡(jiǎn)單地增加服務(wù)器即可.

3 結(jié)語(yǔ)

進(jìn)行軟件架構(gòu)設(shè)計(jì)時(shí),要根據(jù)實(shí)際情況,不能一味貪大;在運(yùn)營(yíng)中,網(wǎng)站出現(xiàn)性能瓶頸后,要能夠?qū)彆r(shí)度勢(shì)地進(jìn)行架構(gòu)調(diào)整.

本文以實(shí)例淺析軟件架構(gòu)的設(shè)計(jì)和調(diào)整只是起到拋磚引玉的作用,限于篇幅,所述雖全,但欠缺深度,實(shí)際操作中如果用到可以進(jìn)入深度研究.

[1] Garlan D,Shaw M.An introduction to software architecture[J].Advances in software engineering and knowledge engineering,1993,1(3).

[2] 余立強(qiáng).LAMP架構(gòu)搭建與網(wǎng)站運(yùn)行實(shí)例[J].網(wǎng)絡(luò)與信息,2011(8).

[3] 李素粉,董 暉,房秉毅,等.面向云化EPC的mobile CDN融合架構(gòu)研究[J].電信研究,2014(11).

猜你喜歡
頁(yè)面數(shù)據(jù)庫(kù)用戶
大狗熊在睡覺(jué)
刷新生活的頁(yè)面
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
如何獲取一億海外用戶
主站蜘蛛池模板: 亚洲精品大秀视频| 欧美一区二区三区香蕉视| 国产一区二区三区视频| 中文字幕在线不卡视频| 激情综合网址| 国产经典在线观看一区| 伊人网址在线| 最新亚洲人成网站在线观看| 韩日无码在线不卡| 国产无遮挡裸体免费视频| 亚洲第一区欧美国产综合| 亚洲综合片| 天天婬欲婬香婬色婬视频播放| 国产在线91在线电影| 久久精品国产91久久综合麻豆自制| 久久婷婷五月综合97色| 54pao国产成人免费视频| www.91中文字幕| 亚洲精选高清无码| 波多野结衣在线se| 在线国产欧美| 久久精品中文字幕少妇| www亚洲天堂| 国产精品所毛片视频| 亚洲日韩精品无码专区| 亚洲va视频| 成人在线视频一区| 免费高清毛片| 在线观看无码av免费不卡网站| 亚洲一级毛片在线播放| 亚洲成a人片77777在线播放 | 国产中文一区二区苍井空| 国产欧美日韩18| 91精品伊人久久大香线蕉| 人妻21p大胆| 亚洲综合一区国产精品| 国产成人精品日本亚洲| 2020国产精品视频| 成人在线观看不卡| 制服无码网站| 久久伊人操| 香蕉99国内自产自拍视频| 在线欧美一区| 午夜人性色福利无码视频在线观看| 国产永久在线观看| 日本午夜影院| 精品国产香蕉在线播出| 免费一极毛片| 99在线国产| 国产00高中生在线播放| A级毛片无码久久精品免费| 特级精品毛片免费观看| 日韩国产黄色网站| 国产成人精品高清在线| 中文字幕乱妇无码AV在线| 美女潮喷出白浆在线观看视频| 亚洲天堂日韩在线| 欧美中文一区| 亚洲成肉网| 女人av社区男人的天堂| 老司机午夜精品网站在线观看| 亚洲中文无码h在线观看| 国产日韩欧美一区二区三区在线| 色欲色欲久久综合网| 国产精品综合久久久| 亚洲欧美人成电影在线观看| 亚洲欧美日韩成人高清在线一区| 国产精品视频a| 国产91在线|中文| 久久久久久国产精品mv| 激情综合图区| 亚洲成网站| 波多野结衣亚洲一区| AV不卡在线永久免费观看| 成人精品免费视频| 蜜臀AV在线播放| 欧美不卡二区| 国产91无码福利在线| 国产成人精品一区二区不卡| 99久久国产自偷自偷免费一区| 制服丝袜亚洲| 在线a视频免费观看|