<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

      在單一的服務器上執行WEB應用程序有一些重大的問題,當網站成功建成并開始接受大量請求時,單一服務器終究無法滿足需要處理的負荷量,所以就有點顯得有點力不從心了。另外一個常見的問題是會產生單點故障,如果該服務器壞掉,那么網站就立刻無法運作了。不論是因為要有較佳的擴充性還是容錯能力,我們都會想在一臺以上的服務器計算機上執行WEB應用程序。所以,這時候我們就需要用到集群這一門技術了。

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

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

      2. 反向代理負載均衡 (如Apache+JK2+Tomcat這種組合)
      使用代理服務器可以將請求轉發給內部的Web服務器,讓代理服務器將請求均勻地轉發給多臺內部Web服務器之一上,從而達到負載均衡的目的。這種代理方式與普通的代理方式有所不同,標準代理方式是客戶使用代理訪問多個外部Web服務器,而這種代理方式是多個客戶使用它訪問內部Web服務器,因此也被稱為反向代理模式。

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

    介紹完上面的集群技術之后,下面就基于Tomcat的集群架構方案進行說明:

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


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


    3、 Apache httpd + Mod_JK2在這里是作為負載均衡器,那為什么要做集群呢?如果集群系統要具備容錯能力,以便在任何單一的硬件或軟件組件失效時還能100%可用,那么集群系統必須沒有單點故障之憂。所以,不能只架設一臺有mod_jk2的Apache httpd,因為如果 httpd或mod_jk2失效了,將不會再有請求被會送交到任何一個Tomcat 實例。這種情況下,Apache httpd就是瓶勁,特別在訪問量大的網站。


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


    B、 偵測Tomcat實例是否失敗
    當Tomcat實例的連接器服務不再響應時,mod_jk2會及時偵測到,并停止將請求送給它。其他的Tomcat實例則會接受失效實例的負載。


    C、 偵測Tomcat實例在失效后的何時恢復
    因連接器服務失效,而停止將請求分配給Tomcat實例之后,mod_jk2會周期性地檢查是否已恢復使用性,并自動將其加入現行的Tomcat實例池中。


    5、 Tomcat中的集群原理是通過組播的方式進行節點的查找并使用TCP連接進行會話的復制。這里提示一下就是,對每個請求的處理,Tomcat都會進行會話復制,復制后的會話將會慢慢變得龐大。


    6、 Mod_jk2同時支持會話親和和會話復制。在tomcat 5中如何實現會話親和和會話復制?把server.xml中的<cluster/>標簽去掉就實現會話親和,把<cluster/>標簽加上就實現會話復制。


    7、 會話親和:就是表示來自同會話的所有請求都由相同的Tomcat 實例來處理,這種情況下,如果Tomcat實例或所執行的服務器機器失效,也會喪失Servlet的會話數據。即使在集群系統中執行更多的Tomcat實例,也永遠不會復制會話數據。這樣是提高集群性能的一種方案,但不具備有容錯能力了。


    8、 使用會話復制,則當一個Tomcat實例宕掉時,由于至少還有另一個Tomcat實例保有一份會話狀態數據,因而數據不會喪失。但性能會有所降低。 

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

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

    留言簿

    隨筆檔案(1)

    文章分類(44)

    文章檔案(46)

    收藏夾(1)

    Adobe

    AOP

    API

    appServer

    BI

    c

    • c-free
    • codeblocks
    • codelite
    • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
    • codelite官網
    • dev-c++
    • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
    • GCC
    • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 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原型設計

    w3c

    Wap

    webservice

    xml

    供應鏈管理

    博客鏈接

    好網站

    工作流

    開源網

    招聘

    插件下載

    操作系統

    構建可伸縮的系統

    構建工具

    測試

    • IETest
    • IE官網
    • OpenSTA
    • Siege
    • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

    游戲

    源碼托管

    經營

    資源

    金融/財務

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲AV日韩精品久久久久久| 亚洲1区1区3区4区产品乱码芒果| 免费污视频在线观看| 亚洲一卡2卡三卡4卡有限公司| 手机在线看永久av片免费| 青青草国产免费国产是公开| 亚洲精品无码不卡| 国产精品无码素人福利免费| 成人片黄网站色大片免费观看APP| 亚洲午夜电影一区二区三区| 久久亚洲精品无码播放| 人禽杂交18禁网站免费| 中文字幕乱理片免费完整的| 亚洲av片不卡无码久久| 亚洲日韩av无码| 全免费一级午夜毛片| 国产在线观看无码免费视频| 亚洲色大成网站www| 亚洲AV无码专区电影在线观看 | 国产一卡二卡3卡四卡免费| 黄色免费网址大全| jlzzjlzz亚洲jzjzjz| 亚洲一区视频在线播放| 性色av免费观看| 99精品免费观看| 精品熟女少妇aⅴ免费久久| 中文日韩亚洲欧美制服| 国产aⅴ无码专区亚洲av麻豆| 毛片免费观看的视频在线| 免费看搞黄视频网站| 国产精品亚洲专区一区| 亚洲av一本岛在线播放| 亚洲va在线va天堂va888www| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲欧洲无码AV电影在线观看| 成年女人看片免费视频播放器| 久久久久免费精品国产| 国产精品美女久久久免费| 亚洲成AV人片在WWW| 亚洲成a人片在线观看中文app| 精品亚洲综合久久中文字幕|