posts - 66,  comments - 11,  trackbacks - 0
              現(xiàn)在有越來越多的關(guān)鍵應(yīng)用和大型應(yīng)用是基于J2EE 來創(chuàng)建的,像銀行系統(tǒng)和帳單系統(tǒng)這些關(guān)鍵應(yīng)用要求有很高的可用性,而Google Yahoo 這樣的大型應(yīng)用就需要很好的可擴展性。在如今這個聯(lián)系越來越緊密的世界,高可用性和良好的可擴展性的重要性日益突出。例如在1999 6 月份,eBay 的服務(wù)停止了22 個小時,導(dǎo)致大約230 萬的拍賣被中斷,eBay 的股票也隨之下降
          9.2 個百分點。
                 J2EE
          集群就是一種能夠提供高可用性、可擴展性以及容錯性的流行技術(shù)。但是由于在J2EE 規(guī)范中沒有對集群做出規(guī)范,各個J2EE 廠商就使用不同的方式來實現(xiàn)集群,這樣就給系統(tǒng)架構(gòu)師和開發(fā)人員帶來了很多麻煩。下面就是常見的一些問題:
          •    
          為什么帶有集群支持的商業(yè)J2EE 服務(wù)器產(chǎn)品如此昂貴?(是無集群支持產(chǎn)品的10 倍)
          •    
          為什么在單機環(huán)境下創(chuàng)建的應(yīng)用在集群環(huán)境中無法正常運行?
          •    
          為什么我的應(yīng)用在集群環(huán)境下運行的非常慢,但是在單機模式下卻沒有這個問題?
          •    
          為什么我的集群應(yīng)用在向其他廠商的服務(wù)器遷移時會失敗?
          要理解為什么會有這些限制,最好的方法就是研究它的實現(xiàn),以揭開J2EE 集群的面紗。

           
          基本術(shù)語
                
          在我們開始討論對于集群不同的實現(xiàn)之前,我想,了解一下集群技術(shù)的一些基本概念還是很有意義的。希望本章不單單是告訴你這些概念和設(shè)計問題,也同時能夠為你勾勒一下不同J2EE集群實現(xiàn)的框架以便于理解。
          可擴展性
                
          在一些大型系統(tǒng)中,很難提前預(yù)知最終用戶的數(shù)量以及他們的使用行為,所以,可擴展性就是指一個系統(tǒng)能夠快速適應(yīng)用戶數(shù)量的增加。提高服務(wù)器處理能力的最直 接的方法就是增加硬件資源,例如CPU、內(nèi)存或者硬盤等。集群是解決這個問題的另外一種方式,它使得一組服務(wù)器共同分擔(dān)繁重的任務(wù),但對于最終用戶來說就 像一臺服務(wù)器。

          高可用性
              
          通過向單機添加硬件來擴展系統(tǒng)能力的方案并不可靠,因為單一的服務(wù)器存在一個單點故障。像銀行系統(tǒng)、帳單系統(tǒng)這樣的關(guān)鍵應(yīng)用甚至連一分鐘的停機都不能容 許,它們需要在任何時間都是可用的,并且要能夠保證響應(yīng)速度。集群技術(shù)就可以滿足這個要求,它通過加入冗余服務(wù)器使得在一個服務(wù)器出錯而停止服務(wù)的時候, 這些冗余的服務(wù)器可以繼續(xù)服務(wù)。

          負(fù)載均衡
              
          負(fù)載均衡是集群的另外一個關(guān)鍵技術(shù),它通過將請求分發(fā)到不同的服務(wù)器來達到高可用性和高效的處理能力。負(fù)載均衡器可以是一個servlet,也可以是一個 插件(例如Linux 上的ipchains),甚至還可以是一個比較昂貴的內(nèi)嵌了SSL 支持的硬件產(chǎn)品。為了能夠分發(fā)請求,負(fù)載均衡器還需要做一些重要的工作,例如使用會話粘滯技術(shù)以確保來自同一個用戶的請求會被轉(zhuǎn)發(fā)到同一個服務(wù)器;使 健康檢查(或者心跳監(jiān)聽)技術(shù)來防止將請求轉(zhuǎn)發(fā)到一個失敗的服務(wù)器;有時候負(fù)載均衡器還將參與失敗轉(zhuǎn)移的工作。

          容錯
                
          高可用的數(shù)據(jù)并不必是嚴(yán)格正確的數(shù)據(jù)。在J2EE 集群中,當(dāng)一個服務(wù)器實例失敗了,在集群中冗余的服務(wù)器就可以處理新到的請求,這樣就保證了服務(wù)依然可用。但是在服務(wù)器失敗的那一刻,正在被處理的請求就 可能無法得到正確的數(shù)據(jù)。那么,帶有容錯功能的集群就可以確保請求所得到的數(shù)據(jù)是正確的,哪怕是服務(wù)器端出現(xiàn)了錯誤。
                
          這個是怎么實現(xiàn)的呢?確實需要我們?nèi)ミM行思考!

          失敗轉(zhuǎn)移
                
          在集群中,失敗轉(zhuǎn)移是實現(xiàn)容錯的一個關(guān)鍵技術(shù)。當(dāng)最初的節(jié)點失敗之后,在集群中選擇另外一個節(jié)點來完成處理。失敗轉(zhuǎn)移到其他節(jié)點可以通過編碼實現(xiàn),也可以由平臺自動實現(xiàn)。

          冪等方法
                
          如果一個方法使用同樣的參數(shù)進行多次調(diào)用所得到的結(jié)果都一樣,也就是說對于該方法的調(diào)用次數(shù)不影響系統(tǒng),那么這個方法就叫做冪等方法。例如 “getUsername()”就是一個冪等方法,而“deleteFile()”就不是冪等的。在討論 HTTP 會話失敗轉(zhuǎn)移和EJB 的失敗轉(zhuǎn)移時,冪等方法是一個很重要的概念
          posted on 2009-10-05 11:59 王永慶 閱讀(239) 評論(0)  編輯  收藏 所屬分類: 設(shè)計思想

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          關(guān)注blogs

          搜索

          •  

          最新評論

          • 1.?re: 心中的那個她[未登錄]
          • 如果心情能那么容易放開就好了,碰到她是我的緣分,但是她的緣分不知道在哪里。
          • --王永慶
          • 2.?re: 心中的那個她[未登錄]
          • 兄弟,喜歡就大膽去追好了,就是因為喜歡才會有不愉快,如果想一輩子沒有這些煩惱,找一個可有可無的人就好了。這種事講的是緣分吧。別人對你好不好其實不太重要。放開心情就好了。
          • --萍水相逢
          • 3.?re: 心中的那個她
          • 只能同甘不能共苦,就他媽算了吧,程序員也是人啊!我現(xiàn)在也很討厭女的不理解人情。
          • --咖啡妝
          • 4.?re: 難以割舍的那份情感
          • 評論內(nèi)容較長,點擊標(biāo)題查看
          • --王永慶
          • 5.?re: 難以割舍的那份情感
          • 評論內(nèi)容較長,點擊標(biāo)題查看
          • --隔葉黃鶯

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 项城市| 甘德县| 延庆县| 乐昌市| 南澳县| 浮山县| 东阿县| 武冈市| 白水县| 文登市| 蓝山县| 汉中市| 蒙山县| 澜沧| 岗巴县| 阿克苏市| 大兴区| 顺义区| 岑巩县| 合阳县| 绵竹市| 太康县| 鄂尔多斯市| 利津县| 和平区| 新丰县| 新宾| 云阳县| 巩义市| 乌恰县| 阳西县| 穆棱市| 建水县| 基隆市| 泰州市| 濮阳市| 辰溪县| 湘潭县| 桑植县| 伊川县| 平和县|