• <ul id="k6mek"><pre id="k6mek"></pre></ul>
      <ul id="k6mek"></ul>
      <ul id="k6mek"></ul>
    • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
    • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
      <th id="k6mek"></th>
    • <samp id="k6mek"></samp>
    • java處理高并發(fā)高負(fù)載類網(wǎng)站的優(yōu)化方法

      一:高并發(fā)高負(fù)載類網(wǎng)站關(guān)注點(diǎn)之?dāng)?shù)據(jù)庫

      ????沒錯,首先是數(shù)據(jù)庫,這是大多數(shù)應(yīng)用所面臨的首個SPOF。尤其是Web2.0的應(yīng)用,數(shù)據(jù)庫的響應(yīng)是首先要解決的。


      ? ? 一般來說MySQL是最常用的,可能最初是一個mysql主機(jī),當(dāng)數(shù)據(jù)增加到100萬以上,那么,MySQL的效能急劇下降。常用的優(yōu)化措施是M-S(主-從)方式進(jìn)行同步復(fù)制,將查詢和操作和分別在不同的服務(wù)器上進(jìn)行操作。我推薦的是M-M-Slaves方式,2個主Mysql,多個Slaves,需要注意的是,雖然有2個Master,但是同時只有1個是Active,我們可以在一定時候切換。之所以用2個M,是保證M不會又成為系統(tǒng)的SPOF。


      ? ? Slaves可以進(jìn)一步負(fù)載均衡,可以結(jié)合LVS,從而將select操作適當(dāng)?shù)钠胶獾讲煌膕laves上。
      以上架構(gòu)可以抗衡到一定量的負(fù)載,但是隨著用戶進(jìn)一步增加,你的用戶表數(shù)據(jù)超過1千萬,這時那個M變成了SPOF。你不能任意擴(kuò)充Slaves,否則復(fù)制同步的開銷將直線上升,怎么辦?我的方法是表分區(qū),從業(yè)務(wù)層面上進(jìn)行分區(qū)。最簡單的,以用戶數(shù)據(jù)為例。根據(jù)一定的切分方式,比如id,切分到不同的數(shù)據(jù)庫集群去。

      ? ? 全局?jǐn)?shù)據(jù)庫用于meta數(shù)據(jù)的查詢。缺點(diǎn)是每次查詢,會增加一次,比如你要查一個用戶nightsailer,你首先要到全局?jǐn)?shù)據(jù)庫群找到nightsailer對應(yīng)的cluster id,然后再到指定的cluster找到nightsailer的實(shí)際數(shù)據(jù)。
      ? ? 每個cluster可以用m-m方式,或者m-m-slaves方式。這是一個可以擴(kuò)展的結(jié)構(gòu),隨著負(fù)載的增加,你可以簡單的增加新的mysql cluster進(jìn)去。

      需要注意的是:

      1、禁用全部auto_increment的字段

      2、id需要采用通用的算法集中分配

      3、要具有比較好的方法來監(jiān)控mysql主機(jī)的負(fù)載和服務(wù)的運(yùn)行狀態(tài)。如果你有30臺以上的mysql數(shù)據(jù)庫在跑就明白我的意思了。

      4、不要使用持久性鏈接(不要用pconnect),相反,使用sqlrelay這種第三方的數(shù)據(jù)庫鏈接池,或者干脆自己做,因?yàn)閜hp4中mysql的鏈接池經(jīng)常出問題。

      ?
      二:高并發(fā)高負(fù)載網(wǎng)站的系統(tǒng)架構(gòu)之HTML靜態(tài)化

      ? ? 其實(shí)大家都知道,效率最高、消耗最小的就是純靜態(tài)化的html頁面,所以我們盡可能使我們的網(wǎng)站上的頁面采用靜態(tài)頁面來實(shí)現(xiàn),這個最簡單的方法其實(shí)也是 最有效的方法。但是對于大量內(nèi)容并且頻繁更新的網(wǎng)站,我們無法全部手動去挨個實(shí)現(xiàn),于是出現(xiàn)了我們常見的信息發(fā)布系統(tǒng)CMS,像我們常訪問的各個門戶站點(diǎn) 的新聞頻道,甚至他們的其他頻道,都是通過信息發(fā)布系統(tǒng)來管理和實(shí)現(xiàn)的,信息發(fā)布系統(tǒng)可以實(shí)現(xiàn)最簡單的信息錄入自動生成靜態(tài)頁面,還能具備頻道管理、權(quán)限 管理、自動抓取等功能,對于一個大型網(wǎng)站來說,擁有一套高效、可管理的CMS是必不可少的。
      ??除了門戶和信息發(fā)布類型的網(wǎng)站,對于交互性要求很高的社區(qū)類型網(wǎng)站來說,盡可能的靜態(tài)化也是提高性能的必要手段,將社區(qū)內(nèi)的帖子、文章進(jìn)行實(shí)時的靜態(tài)化,有更新的時候再重新靜態(tài)化也是大量使用的策略,像Mop的大雜燴就是使用了這樣的策略,網(wǎng)易社區(qū)等也是如此。
      ? ? 同時,html靜態(tài)化也是某些緩存策略使用的手段,對于系統(tǒng)中頻繁使用數(shù)據(jù)庫查詢但是內(nèi)容更新很小的應(yīng)用,可以考慮使用html靜態(tài)化來實(shí)現(xiàn),比如論壇 中論壇的公用設(shè)置信息,這些信息目前的主流論壇都可以進(jìn)行后臺管理并且存儲再數(shù)據(jù)庫中,這些信息其實(shí)大量被前臺程序調(diào)用,但是更新頻率很小,可以考慮將這 部分內(nèi)容進(jìn)行后臺更新的時候進(jìn)行靜態(tài)化,這樣避免了大量的數(shù)據(jù)庫訪問請求高并發(fā)。


      網(wǎng)站HTML靜態(tài)化解決方案

      當(dāng)一個Servlet資源請求到達(dá)WEB服務(wù)器之后我們會填充指定的JSP頁面來響應(yīng)請求:

      ????HTTP請求---Web服務(wù)器---Servlet--業(yè)務(wù)邏輯處理--訪問數(shù)據(jù)--填充JSP--響應(yīng)請求

      HTML靜態(tài)化之后:

      HTTP請求---Web服務(wù)器---Servlet--HTML--響應(yīng)請求

      靜態(tài)訪求如下

      三:高并發(fā)高負(fù)載類網(wǎng)站關(guān)注點(diǎn)之緩存、負(fù)載均衡、存儲

      ? ? 緩存是另一個大問題,我一般用memcached來做緩存集群,一般來說部署10臺左右就差不多(10g內(nèi)存池)。需要注意一點(diǎn),千萬不能用使用swap,最好關(guān)閉linux的swap。

      ? ? 負(fù)載均衡/加速
      ? ? 可能上面說緩存的時候,有人第一想的是頁面靜態(tài)化,所謂的靜態(tài)html,我認(rèn)為這是常識,不屬于要點(diǎn)了。頁面的靜態(tài)化隨之帶來的是靜態(tài)服務(wù)的負(fù)載均衡和加速。我認(rèn)為Lighttped+Squid是最好的方式了。
      LVS <------->lighttped====>squid(s) ====lighttpd

      ? ? 上面是我經(jīng)常用的。注意,我沒有用apache,除非特定的需求,否則我不部署apache,因?yàn)槲乙话阌胮hp-fastcgi配合lighttpd,性能比apache+mod_php要強(qiáng)很多。

      ? ? squid的使用可以解決文件的同步等等問題,但是需要注意,你要很好的監(jiān)控緩存的命中率,盡可能的提高的90%以上。
      ? ? squid和lighttped也有很多的話題要討論,這里不贅述。

      ? ? 存儲
      ? ? 存儲也是一個大問題,一種是小文件的存儲,比如圖片這類。另一種是大文件的存儲,比如搜索引擎的索引,一般單文件都超過2g以上。
      ? ? 小文件的存儲最簡單的方法是結(jié)合lighttpd來進(jìn)行分布?;蛘吒纱嗍褂肦edhat的GFS,優(yōu)點(diǎn)是應(yīng)用透明,缺點(diǎn)是費(fèi)用較高。我是指你購買盤陣的問題。我的項(xiàng)目中,存儲量是2-10Tb,我采用了分布式存儲。這里要解決文件的復(fù)制和冗余。這樣每個文件有不同的冗余,這方面可以參考google的gfs的論文。
      ? ? 大文件的存儲,可以參考nutch的方案,現(xiàn)在已經(jīng)獨(dú)立為hadoop子項(xiàng)目。(你可以google it)

      ? ??其他:
      ? ? 此外,passport等也是考慮的,不過都屬于比較簡單的了。


      四:高并發(fā)高負(fù)載網(wǎng)站的系統(tǒng)架構(gòu)之圖片服務(wù)器分離?
      ? ? 大家知道,對于Web 服務(wù)器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,于是我們有必要將圖片與頁面進(jìn)行分離,這是基本上大型網(wǎng)站都會采用的策略,他 們都有獨(dú)立的圖片服務(wù)器,甚至很多臺圖片服務(wù)器。這樣的架構(gòu)可以降低提供頁面訪問請求的服務(wù)器系統(tǒng)壓力,并且可以保證系統(tǒng)不會因?yàn)閳D片問題而崩潰,在應(yīng)用 服務(wù)器和圖片服務(wù)器上,可以進(jìn)行不同的配置優(yōu)化,比如apache在配置ContentType的時候可以盡量少支持,盡可能少的LoadModule, 保證更高的系統(tǒng)消耗和執(zhí)行效率。

      ? ? 利用Apache實(shí)現(xiàn)圖片服務(wù)器的分離
      ? ? 緣由:?
      ? ? 起步階段的應(yīng)用,都可能部署在一臺服務(wù)器上(費(fèi)用上的原因)?
      ? ? 第一個優(yōu)先分離的,肯定是數(shù)據(jù)庫和應(yīng)用服務(wù)器。?
      ? ? 第二個分離的,會是什么呢?各有各的考慮,我所在的項(xiàng)目組重點(diǎn)考慮的節(jié)約帶寬,服務(wù)器性能再好,帶寬再高,并發(fā)來了,也容易撐不住。因此,我這篇文章的重點(diǎn)在這里。這里重點(diǎn)是介紹實(shí)踐,不一定符合所有情況,供看者參考吧。
      ? ? 環(huán)境介紹:?
      ? ? WEB應(yīng)用服務(wù)器:4CPU雙核2G, 內(nèi)存4G?
      ? ? 部署:Win2003/Apache Http Server 2.1/Tomcat6?
      ? ? 數(shù)據(jù)庫服務(wù)器:4CPU雙核2G, 內(nèi)存4G?
      ? ? 部署:Win2003/MSSQL2000?
      ? ??步驟:?
      ? ? 步驟一:增加2臺配置為:2CPU雙核2G,內(nèi)存2G普通服務(wù)器,做資源服務(wù)器?
      ? ? 部署:Tomcat6,跑了一個圖片上傳的簡單應(yīng)用,(記得指定web.xml的),并指定域名為res1.***.com,res2.***.com,采用ajp協(xié)議
      ? ? 步驟二:修改Apache httpd.conf配置?
      ? ? 原來應(yīng)用的文件上傳功能網(wǎng)址為:?
      ? ? 1、/fileupload.html?
      ? ? 2、/otherupload.html?
      ? ? 在httpd.conf中增加如下配置



      返回觀點(diǎn)列表
      本文標(biāo)簽:

      相關(guān)專題

      • 品牌官網(wǎng)設(shè)計(jì)
        品牌官網(wǎng)設(shè)計(jì)

        杭州派迪科技為高端客戶提供品牌官網(wǎng)咨詢策劃,品牌官網(wǎng)設(shè)計(jì),品牌官網(wǎng)建設(shè)開發(fā)服務(wù),以國際化視野和標(biāo)準(zhǔn)為基礎(chǔ),為各行業(yè)領(lǐng)軍品牌提供高端企業(yè)網(wǎng)站定制、策劃、設(shè)計(jì)、互動與制作

        查看詳情
      • 大策略營銷門戶網(wǎng)站
        大策略營銷門戶網(wǎng)站

        杭州派迪科技有自己的營銷型網(wǎng)站CMS系統(tǒng),適合白帽SEO網(wǎng)站。特別對大策略的營銷型門戶網(wǎng)站制作有一定的經(jīng)驗(yàn),曾經(jīng)為上海天擎外貿(mào)行業(yè)網(wǎng)站、浙江兆龍營銷型門戶、先臨三維門戶營銷網(wǎng)站提供全程的技術(shù)支持及SEO優(yōu)化指導(dǎo)

        查看詳情
      • 集團(tuán)/上市公司網(wǎng)站
        集團(tuán)/上市公司網(wǎng)站

        杭州派迪科技為杭州本地集團(tuán)公司提供網(wǎng)頁設(shè)計(jì)、制作、開發(fā)服務(wù),為集團(tuán)公司網(wǎng)站建設(shè)提供了響應(yīng)式、營銷型、品牌型、門戶型網(wǎng)站建設(shè)需求,歡迎廣大集團(tuán)公司客戶咨詢

        查看詳情
      • 外貿(mào)網(wǎng)站建設(shè)
        外貿(mào)網(wǎng)站建設(shè)

        杭州派迪科技為高端客戶提供外貿(mào)網(wǎng)站咨詢策劃,外貿(mào)官網(wǎng)設(shè)計(jì),外貿(mào)官網(wǎng)建設(shè)開發(fā)服務(wù),以谷歌搜索引起算法為基礎(chǔ),為各行業(yè)外貿(mào)公司提供高端企業(yè)外貿(mào)網(wǎng)站定制、策劃、設(shè)計(jì)、互動與制作

        查看詳情
      • 企業(yè)網(wǎng)站建設(shè)
        企業(yè)網(wǎng)站建設(shè)

        高端專業(yè)、令人印象深刻的用戶界面、易于訪問——企業(yè)網(wǎng)站必須反映一切,因?yàn)榕傻峡萍荚谶@里提供幫助,憑借精湛的技術(shù)、豐富的經(jīng)驗(yàn)、與客戶的持續(xù)溝通以及對每一個細(xì)節(jié)的關(guān)注,我們確保在快速的周期時間內(nèi)提供優(yōu)質(zhì)的服務(wù)。

        查看詳情
      • 半定制網(wǎng)站
        半定制網(wǎng)站

        杭州派迪科技模板網(wǎng)站建設(shè)專題_各行業(yè)方案專題欄目提供各行業(yè)產(chǎn)品適合的網(wǎng)站建設(shè)方案,幫助企業(yè)了解派迪科技建站效果等信息,您可以通過本站了解各行業(yè)網(wǎng)站建設(shè)方案,如需要獲取本行業(yè)定制網(wǎng)站建設(shè)方案,可以聯(lián)系在線客服或撥打電話咨詢

        查看詳情

      體驗(yàn)從溝通開始,讓我們聆聽您的需求!

      開始您的數(shù)字化品牌體驗(yàn)! 0571-85815193 期待您的來電!

      [ 網(wǎng)站建設(shè)×品牌官網(wǎng)設(shè)計(jì)×大策略營銷門戶×微信小程序開發(fā)×微信公眾號開發(fā)]

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      免費(fèi)獲取項(xiàng)目策劃

      項(xiàng)目開發(fā)部產(chǎn)品經(jīng)理

      項(xiàng)目開發(fā)部產(chǎn)品經(jīng)理

      免費(fèi)獲取項(xiàng)目策劃

      我們正使用 cookies 來改善您的訪問體驗(yàn)

      派迪科技非常重視您的個人隱私,當(dāng)您訪問我們的網(wǎng)站www.bmwdream.cn時,請同意使用所有cookies 。

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookies請?jiān)L問我們的 《隱私政策》

      Cookie 偏好

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookie請?jiān)L問我們的 《隱私政策》

      管理cookie偏好

      基本 cookies

      始終允許

      這些 cookies 是網(wǎng)站運(yùn)行所必需的,不能在我們的系統(tǒng)中關(guān)閉。它們通常僅針對您所做的相當(dāng)于服務(wù)請求的操作而設(shè)置,例如設(shè)置您的隱私首選項(xiàng)、登錄或填寫表格。您可以將瀏覽器設(shè)置為阻止或提醒您有關(guān)這些 cookies 的信息,但網(wǎng)站的某些部分將無法運(yùn)行。這些 cookies 不存儲任何個人身份信息。

      性能 cookies

      始終允許
      這些 cookies 使我們能夠計(jì)算訪問量和流量來源,以便我們可以衡量和改進(jìn)我們網(wǎng)站的性能。它們幫助我們了解哪些頁面受歡迎和不受歡迎,并了解訪問者如何在網(wǎng)站上移動。這些 cookies 收集的所有信息都是匯總的,而且是匿名的。如果您不允許這些 cookies,我們將不知道您何時訪問了我們的網(wǎng)站,也無法監(jiān)控其性能。

      功能性 cookies

      這些 cookies 收集信息用于分析和個性化您的定向廣告體驗(yàn)。您可以使用此撥動開關(guān)來行使選擇不獲取個人信息的權(quán)利。如果您選擇關(guān)閉,我們將無法向您提供個性化廣告,也不會將您的個人信息交給任何第三方。

      定位 Cookies

      這些 cookies 可能由我們的廣告合作伙伴通過我們的網(wǎng)站設(shè)置。這些公司可能會使用它們來建立您的興趣檔案,并在其他網(wǎng)站上向您展示相關(guān)廣告。它們不直接存儲個人信息,而是基于唯一標(biāo)識您的瀏覽器和互聯(lián)網(wǎng)設(shè)備。如果您不允許使用這些 cookie,您將體驗(yàn)到較少針對性的廣告。
      • <ul id="k6mek"><pre id="k6mek"></pre></ul>
        <ul id="k6mek"></ul>
        <ul id="k6mek"></ul>
      • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
      • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
        <th id="k6mek"></th>
      • <samp id="k6mek"></samp>