<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 0,  comments - 17,  trackbacks - 0

    來源:http://blog.csdn.net/ladofwind/archive/2006/08/29/1138484.aspx

      在單一的服務(wù)器上執(zhí)行WEB應(yīng)用程序有一些重大的問題,當(dāng)網(wǎng)站成功建成并開始接受大量請(qǐng)求時(shí),單一服務(wù)器終究無法滿足需要處理的負(fù)荷量,所以就有點(diǎn)顯得有點(diǎn)力不從心了。另外一個(gè)常見的問題是會(huì)產(chǎn)生單點(diǎn)故障,如果該服務(wù)器壞掉,那么網(wǎng)站就立刻無法運(yùn)作了。不論是因?yàn)橐休^佳的擴(kuò)充性還是容錯(cuò)能力,我們都會(huì)想在一臺(tái)以上的服務(wù)器計(jì)算機(jī)上執(zhí)行WEB應(yīng)用程序。所以,這時(shí)候我們就需要用到集群這一門技術(shù)了。

             在進(jìn)入集群系統(tǒng)架構(gòu)探討之前,先定義一些專門術(shù)語:
    1. 集群(Cluster):是一組獨(dú)立的計(jì)算機(jī)系統(tǒng)構(gòu)成一個(gè)松耦合的多處理器系統(tǒng),它們之間通過網(wǎng)絡(luò)實(shí)現(xiàn)進(jìn)程間的通信。應(yīng)用程序可以通過網(wǎng)絡(luò)共享內(nèi)存進(jìn)行消息傳送,實(shí)現(xiàn)分布式計(jì)算機(jī)。 
    2. 負(fù)載均衡(Load Balance):先得從集群講起,集群就是一組連在一起的計(jì)算機(jī),從外部看它是一個(gè)系統(tǒng),各節(jié)點(diǎn)可以是不同的操作系統(tǒng)或不同硬件構(gòu)成的計(jì)算機(jī)。如一個(gè)提供Web服務(wù)的集群,對(duì)外界來看是一個(gè)大Web服務(wù)器。不過集群的節(jié)點(diǎn)也可以單獨(dú)提供服務(wù)。
    3. 特點(diǎn):在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,負(fù)載均衡提供了一種廉價(jià)有效的方法擴(kuò)展服務(wù)器帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性。集群系統(tǒng)(Cluster)主要解決下面幾個(gè)問題: 
    高可靠性(HA):利用集群管理軟件,當(dāng)主服務(wù)器故障時(shí),備份服務(wù)器能夠自動(dòng)接管主服務(wù)器的工作,并及時(shí)切換過去,以實(shí)現(xiàn)對(duì)用戶的不間斷服務(wù)。
    高性能計(jì)算(HP):即充分利用集群中的每一臺(tái)計(jì)算機(jī)的資源,實(shí)現(xiàn)復(fù)雜運(yùn)算的并行處理,通常用于科學(xué)計(jì)算領(lǐng)域,比如基因分析,化學(xué)分析等。 
    負(fù)載平衡:即把負(fù)載壓力根據(jù)某種算法合理分配到集群中的每一臺(tái)計(jì)算機(jī)上,以減輕主服務(wù)器的壓力,降低對(duì)主服務(wù)器的硬件和軟件要求。

    目前比較常用的負(fù)載均衡技術(shù)主要有: 
      1. 基于DNS的負(fù)載均衡 
      通過DNS服務(wù)中的隨機(jī)名字解析來實(shí)現(xiàn)負(fù)載均衡,在DNS服務(wù)器中,可以為多個(gè)不同的地址配置同一個(gè)名字,而最終查詢這個(gè)名字的客戶機(jī)將在解析這個(gè)名字時(shí)得到其中一個(gè)地址。因此,對(duì)于同一個(gè)名字,不同的客戶機(jī)會(huì)得到不同的地址,他們也就訪問不同地址上的Web服務(wù)器,從而達(dá)到負(fù)載均衡的目的。 

      2. 反向代理負(fù)載均衡 (如Apache+JK2+Tomcat這種組合)
      使用代理服務(wù)器可以將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部的Web服務(wù)器,讓代理服務(wù)器將請(qǐng)求均勻地轉(zhuǎn)發(fā)給多臺(tái)內(nèi)部Web服務(wù)器之一上,從而達(dá)到負(fù)載均衡的目的。這種代理方式與普通的代理方式有所不同,標(biāo)準(zhǔn)代理方式是客戶使用代理訪問多個(gè)外部Web服務(wù)器,而這種代理方式是多個(gè)客戶使用它訪問內(nèi)部Web服務(wù)器,因此也被稱為反向代理模式。

      3. 基于NAT(Network Address Translation)的負(fù)載均衡技術(shù) (如Linux Virtual Server,簡(jiǎn)稱LVS)
      網(wǎng)絡(luò)地址轉(zhuǎn)換為在內(nèi)部地址和外部地址之間進(jìn)行轉(zhuǎn)換,以便具備內(nèi)部地址的計(jì)算機(jī)能訪問外部網(wǎng)絡(luò),而當(dāng)外部網(wǎng)絡(luò)中的計(jì)算機(jī)訪問地址轉(zhuǎn)換網(wǎng)關(guān)擁有的某一外部地址時(shí),地址轉(zhuǎn)換網(wǎng)關(guān)能將其轉(zhuǎn)發(fā)到一個(gè)映射的內(nèi)部地址上。因此如果地址轉(zhuǎn)換網(wǎng)關(guān)能將每個(gè)連接均勻轉(zhuǎn)換為不同的內(nèi)部服務(wù)器地址,此后外部網(wǎng)絡(luò)中的計(jì)算機(jī)就各自與自己轉(zhuǎn)換得到的地址上服務(wù)器進(jìn)行通信,從而達(dá)到負(fù)載分擔(dān)的目的。

    介紹完上面的集群技術(shù)之后,下面就基于Tomcat的集群架構(gòu)方案進(jìn)行說明:

    上面是采用了Apache httpd作為web服務(wù)器的,即作為Tomcat的前端處理器,根據(jù)具體情況而定,有些情況下是不需要Apache httpd作為 web 服務(wù)器的,如系統(tǒng)展現(xiàn)沒有靜態(tài)頁面那就不需要Apache httpd,那時(shí)可以直接使用Tomcat作為web 服務(wù)器來使用。使用Apache httpd主要是它在處理靜態(tài)頁面方面的能力比Tomcat強(qiáng)多了。
    1、 用戶的網(wǎng)頁瀏覽器做完本地 DNS和企業(yè)授權(quán)的DNS之的請(qǐng)求/響應(yīng)后,這時(shí)候企業(yè)授權(quán)的DNS(即21cn BOSS DNS)會(huì)給用戶本地的DNS服務(wù)器提供一個(gè)NAT請(qǐng)求分配器(即網(wǎng)關(guān))IP。


    2、 NAT分配器,它會(huì)根據(jù)特定的分配算法,來決定要將連接交給哪一臺(tái)內(nèi)部 Apache httpd來處理請(qǐng)求。大多數(shù)的NAT請(qǐng)求分配器提供了容錯(cuò)能力:根據(jù)偵測(cè)各種WEB服務(wù)器的失效狀況,停止將請(qǐng)求分配給已經(jīng)宕掉的服務(wù)器。并且有些分配器還可以監(jiān)測(cè)到WEB服務(wù)器機(jī)器的負(fù)載情況,并將請(qǐng)求分配給負(fù)載最輕的服務(wù)器等等。Linux Virtual Server是一個(gè)基于Linux操作系統(tǒng)上執(zhí)行的VS-NAT開源軟件套件,而且它有豐富的功能和良好的說明文件。商業(yè)硬件解決方案 Foundry Networks的ServerIron是目前業(yè)界公認(rèn)最佳的請(qǐng)求分配器之一。


    3、 Apache httpd + Mod_JK2在這里是作為負(fù)載均衡器,那為什么要做集群呢?如果集群系統(tǒng)要具備容錯(cuò)能力,以便在任何單一的硬件或軟件組件失效時(shí)還能100%可用,那么集群系統(tǒng)必須沒有單點(diǎn)故障之憂。所以,不能只架設(shè)一臺(tái)有mod_jk2的Apache httpd,因?yàn)槿绻?nbsp;httpd或mod_jk2失效了,將不會(huì)再有請(qǐng)求被會(huì)送交到任何一個(gè)Tomcat 實(shí)例。這種情況下,Apache httpd就是瓶勁,特別在訪問量大的網(wǎng)站。


    4、 Mod_JK2負(fù)載均衡與故障復(fù)原,決定把Apache httpd當(dāng)成web服務(wù)器,而且使用mod_jk2將請(qǐng)求傳送給Tomcat,則可以使用mod_jk2的負(fù)載均衡與容錯(cuò)功能。在集群系統(tǒng)中,帶有mod_jk2的Apache httpd可以做的事情包括:
    A、 將請(qǐng)求分配至一或多個(gè)Tomcat實(shí)例上
    你可以在mod_jk2的workers.properties文件中,設(shè)定許多Tomcat實(shí)例,并賦于每個(gè)實(shí)例一個(gè)lb_factor值,以作為請(qǐng)求分配的加權(quán)因子。


    B、 偵測(cè)Tomcat實(shí)例是否失敗
    當(dāng)Tomcat實(shí)例的連接器服務(wù)不再響應(yīng)時(shí),mod_jk2會(huì)及時(shí)偵測(cè)到,并停止將請(qǐng)求送給它。其他的Tomcat實(shí)例則會(huì)接受失效實(shí)例的負(fù)載。


    C、 偵測(cè)Tomcat實(shí)例在失效后的何時(shí)恢復(fù)
    因連接器服務(wù)失效,而停止將請(qǐng)求分配給Tomcat實(shí)例之后,mod_jk2會(huì)周期性地檢查是否已恢復(fù)使用性,并自動(dòng)將其加入現(xiàn)行的Tomcat實(shí)例池中。


    5、 Tomcat中的集群原理是通過組播的方式進(jìn)行節(jié)點(diǎn)的查找并使用TCP連接進(jìn)行會(huì)話的復(fù)制。這里提示一下就是,對(duì)每個(gè)請(qǐng)求的處理,Tomcat都會(huì)進(jìn)行會(huì)話復(fù)制,復(fù)制后的會(huì)話將會(huì)慢慢變得龐大。


    6、 Mod_jk2同時(shí)支持會(huì)話親和和會(huì)話復(fù)制。在tomcat 5中如何實(shí)現(xiàn)會(huì)話親和和會(huì)話復(fù)制?把server.xml中的<cluster/>標(biāo)簽去掉就實(shí)現(xiàn)會(huì)話親和,把<cluster/>標(biāo)簽加上就實(shí)現(xiàn)會(huì)話復(fù)制。


    7、 會(huì)話親和:就是表示來自同會(huì)話的所有請(qǐng)求都由相同的Tomcat 實(shí)例來處理,這種情況下,如果Tomcat實(shí)例或所執(zhí)行的服務(wù)器機(jī)器失效,也會(huì)喪失Servlet的會(huì)話數(shù)據(jù)。即使在集群系統(tǒng)中執(zhí)行更多的Tomcat實(shí)例,也永遠(yuǎn)不會(huì)復(fù)制會(huì)話數(shù)據(jù)。這樣是提高集群性能的一種方案,但不具備有容錯(cuò)能力了。


    8、 使用會(huì)話復(fù)制,則當(dāng)一個(gè)Tomcat實(shí)例宕掉時(shí),由于至少還有另一個(gè)Tomcat實(shí)例保有一份會(huì)話狀態(tài)數(shù)據(jù),因而數(shù)據(jù)不會(huì)喪失。但性能會(huì)有所降低。 

    posted on 2008-05-13 19:23 xyz 閱讀(403) 評(píng)論(0)  編輯  收藏 所屬分類: 網(wǎng)絡(luò)文摘

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿

    隨筆檔案(1)

    文章分類(44)

    文章檔案(46)

    收藏夾(1)

    Adobe

    AOP

    API

    appServer

    BI

    c

    • c-free
    • codeblocks
    • codelite
    • CodeLite IDE 是一個(gè)強(qiáng)大的開源,跨平臺(tái)的 C/C++整合開發(fā)環(huán)境. 支持包括 Windows、Linux 和 Mac 系統(tǒng)下運(yùn)行
    • codelite官網(wǎng)
    • dev-c++
    • Dev-C++是一個(gè)C&C++開發(fā)工具,它是一款自由軟件,遵守GPL協(xié)議。
    • GCC
    • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因?yàn)樗局荒芴幚?C語言。GCC 很快地?cái)U(kuò)展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

    Cache

    CMS

    DB

    eclipse

    FreeMarker

    hibernate

    html5

    ibatis

    java

    jquery

    js

    json

    Linux

    Log

    mail server

    mobile

    mysql

    oauth

    openID

    other

    PHP

    portal

    report

    Scheduler

    schema

    Security

    SOA

    spring

    struts

    UI原型設(shè)計(jì)

    w3c

    Wap

    webservice

    xml

    供應(yīng)鏈管理

    博客鏈接

    好網(wǎng)站

    工作流

    開源網(wǎng)

    招聘

    插件下載

    操作系統(tǒng)

    構(gòu)建可伸縮的系統(tǒng)

    構(gòu)建工具

    測(cè)試

    • IETest
    • IE官網(wǎng)
    • OpenSTA
    • Siege
    • Siege是一個(gè)壓力測(cè)試和評(píng)測(cè)工具,設(shè)計(jì)用于WEB開發(fā)這評(píng)估應(yīng)用在壓力下的承受能力

    游戲

    源碼托管

    經(jīng)營(yíng)

    資源

    金融/財(cái)務(wù)

    搜索

    •  

    最新評(píng)論

    主站蜘蛛池模板: 久久久无码精品亚洲日韩京东传媒 | 乱淫片免费影院观看| 杨幂最新免费特级毛片| 永久免费精品影视网站| 两个人看www免费视频| 1000部啪啪未满十八勿入免费| 一个人免费观看在线视频www| 国产免费啪嗒啪嗒视频看看| 国产亚洲精品免费视频播放| 亚洲综合婷婷久久| 亚洲人成人无码.www石榴| 成人午夜影视全部免费看| 毛片在线全部免费观看| 亚洲精品动漫免费二区| 亚洲日本一区二区三区在线不卡| 亚洲国产精品久久久久网站| 亚洲日韩AV无码一区二区三区人| 乱人伦中文视频在线观看免费| 在线免费观看亚洲| 免费国产在线观看| 亚洲成色999久久网站| 亚洲精品美女久久久久久久| 成全视成人免费观看在线看| 成年在线观看网站免费| 亚洲男人天堂2020| 亚洲国产精品人久久电影| 国产精品久久亚洲一区二区| 无码免费一区二区三区免费播放 | 亚洲依依成人亚洲社区| 好猛好深好爽好硬免费视频| 免费成人激情视频| 国产成人高清亚洲| 国产精品亚洲精品| 大地资源网高清在线观看免费| 精品熟女少妇AV免费观看| 亚洲日韩小电影在线观看| 国产成人亚洲综合网站不卡| 国产情侣久久久久aⅴ免费| 国产精品无码一区二区三区免费| 久久精品国产亚洲夜色AV网站| 久久久久亚洲AV无码去区首|