亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-04-03 19:13:47
        關(guān)鍵詞:頁(yè)面架構(gòu)調(diào)整

        徐 立

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

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

        1 低成本快速開發(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ì),有未來的盈利規(guī)劃,但由于是創(chuàng)業(yè)型公司,依靠的資金來源主要是個(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ù),先期投入要盡量少,以最低成本滿足特定訪問量;第三,設(shè)計(jì)要靈活.盡量低耦合,擴(kuò)展性要好.

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

        選用小而美的框架LAMP[2]50-52,LAMP是架構(gòu)中用到的幾種技術(shù)及開源軟件的首字母縮寫.A代表http服務(wù)器采用Apache,是最受歡迎的開源web服務(wù)器;L代表Linux是開源的操作系統(tǒng);M代表Mysql,架構(gòu)選擇開源的Mysql數(shù)據(jù)庫(kù)用來管理數(shù)據(jù),Mysql是多線程、多用戶的支持SQL語(yǔ)言的數(shù)據(jù)庫(kù)管理系統(tǒng);P代表PHP,它是一種編程語(yǔ)言,適合快速開發(fā)Web系統(tǒng).由于初期訪問量較小,其物理架構(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),一般二百人日的工作量即可完成開發(fā),網(wǎng)站就能上線調(diào)試運(yùn)行.

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

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

        網(wǎng)站上線后,經(jīng)過積極推廣,產(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)了問題,也許之前的架構(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)如下問題.

        2.2.1 存儲(chǔ)壓力

        網(wǎng)站在運(yùn)營(yíng)過程中,用戶產(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è)面不顯示,已上傳的圖片的問題,就是由于圖片已經(jīng)上傳成功但是其存儲(chǔ)路徑?jīng)]有成功地寫進(jìn)Mysql數(shù)據(jù)庫(kù)造成的.

        2.2.3 流量壓力主要來自圖片

        網(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ù)器來完成,應(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ù)器來支撐,做出該決策的依據(jù)一是目前的經(jīng)濟(jì)狀況,二是針對(duì)以后用戶量和流量增速的預(yù)測(cè),雖然目前來講可能有冗余,但這種冗余是值得的.具體調(diào)整方案如下.

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

        有兩臺(tái)服務(wù)器一主一從支撐Mysql數(shù)據(jù)管理,數(shù)據(jù)庫(kù)端的設(shè)計(jì)可以歸納為“主從復(fù)制、讀寫分離”,也就是說,所有寫操作由主服務(wù)器來完成,數(shù)據(jù)被復(fù)制到從服務(wù)器,以達(dá)到數(shù)據(jù)的一致性,所有的讀操作由從服務(wù)器來完成,將來可以方便地?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),有問題及時(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è)”問題.

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

        Memcache是一款高效的開源分布式對(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ù)讀操作的程序要看是否有緩存以及緩存是否失效來決定數(shù)據(jù)是從Memcache中取或者是從Mysql中取.

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

        由于網(wǎng)站的主要流量壓力來自圖片,且用戶反映存在圖片加載緩慢的現(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)非常高的訪問量;按峰值是按單位時(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)常訪問的頁(yè)面且變動(dòng)不大的頁(yè)面或頁(yè)面的某塊內(nèi)容(比如:主頁(yè)、商品詳細(xì)頁(yè)、文章瀏覽頁(yè)等)生成文件,以某種形式比如html代碼的形式保存在文件服務(wù)器上,當(dāng)這次高頻次被訪問的頁(yè)面被訪問時(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)行緩存,被訪問時(shí)會(huì)從適合的緩存池中取的,也能避免各個(gè)環(huán)節(jié)的壓力.

        通過該次大規(guī)模的架構(gòu)調(diào)整,新的架構(gòu)已經(jīng)具備了服務(wù)大型網(wǎng)站的能力,只要沒有特殊的業(yè)務(wù)需求(比如某些業(yè)務(wù)需要存儲(chǔ)海量圖片或音視頻文件,或者秒殺等業(yè)務(wù)觸發(fā)短時(shí)間內(nèi)高并發(fā)訪問),該架構(gòu)兩三年內(nèi)不用調(diào)整,當(dāng)性能出現(xià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è)面架構(gòu)調(diào)整
        大狗熊在睡覺
        基于FPGA的RNN硬件加速架構(gòu)
        刷新生活的頁(yè)面
        夏季午睡越睡越困該如何調(diào)整
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        工位大調(diào)整
        意林(2020年10期)2020-06-01 07:26:37
        滬指快速回落 調(diào)整中可增持白馬
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
        一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
        18
        国产免费av片在线观看麻豆| 狠狠色噜噜狠狠狠狠888奇禾| 色777狠狠狠综合| 日日噜噜夜夜狠狠va视频| 色妞ww精品视频7777| 白天躁晚上躁麻豆视频| 国产免费破外女真实出血视频| 欧美a在线播放| 日本最新一区二区三区免费看| 日本高清中文字幕二区在线| 日韩精品夜色二区91久久久 | 亚洲日韩av无码中文字幕美国 | 精品亚洲女同一区二区| 亚洲老熟妇愉情magnet| 开心五月激动心情五月| 亚洲综合一区二区三区在线观看| 久久综合另类激情人妖| 久久99精品久久久久久噜噜 | 丝袜美腿诱惑区在线播放| 成年人一区二区三区在线观看视频 | 久久精品亚洲国产av网站| 日本精品免费看99久久| a级毛片免费观看在线播放| 精东天美麻豆果冻传媒mv| 久久精品人人做人人爽| 2019年92午夜视频福利| 国产精品久久国产三级国电话系列| 在线视频一区二区在线观看| 国产精品国产三级国产剧情| 亚洲精品人成中文毛片| 国产成人精品亚洲日本在线观看| 九九热线有精品视频86| 久久亚洲国产中v天仙www| 国产免费视频一区二区| 少妇被躁到高潮和人狍大战| av网站在线观看入口| 黄网站欧美内射| 欧美成人精品一区二区综合 | 日本高清视频永久网站www| 国产真实夫妇视频| 狠狠色噜噜狠狠狠狠色综合久|