1伸縮性(Scalability)
大型系統(tǒng)很難預(yù)測(cè)終端用戶(hù)的數(shù)量與行為,伸縮性是指系統(tǒng)可以支持用戶(hù)的快速增長(zhǎng)。提高服務(wù)器同時(shí)處理并發(fā)會(huì)話(huà)的最直覺(jué)的方式就是增加服務(wù)器資源(內(nèi)存,CPU,或硬盤(pán)),集群是解決伸縮性的另一種可選方式。它允許一組服務(wù)器分擔(dān)處理繁重的任務(wù),而邏輯上就象一臺(tái)服務(wù)器一樣。
2高可用性(High Availability)
提高伸縮性的單服務(wù)器解決方案(添加內(nèi)存和CPU)是并不強(qiáng)壯的辦法,因?yàn)閱吸c(diǎn)失效原因。關(guān)鍵任務(wù)應(yīng)用不能容忍服務(wù)中斷哪怕一分鐘。它要求任何時(shí)候都可以合理地可預(yù)期的響應(yīng)時(shí)間訪(fǎng)問(wèn)這些服務(wù),集群可以通過(guò)提供額外的服務(wù)器使其在一臺(tái)服務(wù)器實(shí)效時(shí)提供服務(wù),從而提高可用性。
3負(fù)載均衡(Load balancing)
負(fù)載均衡是集群技術(shù)之后的一個(gè)關(guān)鍵技術(shù),通過(guò)分發(fā)請(qǐng)求到不同的服務(wù)器來(lái)提高可用性和更好的性能。負(fù)載均衡器可以是一個(gè)Servlet或插件(例如a linux box using ipchains),除分發(fā)請(qǐng)求之外,負(fù)載均衡器應(yīng)負(fù)責(zé)其他一些重要的任務(wù),例如“會(huì)話(huà)黏附”,使得某個(gè)用戶(hù)會(huì)話(huà)始終在一臺(tái)服務(wù)器上存活,還有“心跳檢測(cè)”,防止分發(fā)請(qǐng)求到失效的服務(wù)器。有時(shí)候負(fù)載均衡器也參與到“失效轉(zhuǎn)移”處理。
4容錯(cuò)(Fault Tolerance)
高可用性數(shù)據(jù)不必是嚴(yán)格正確數(shù)據(jù).在J2EE集群中,當(dāng)一個(gè)服務(wù)器實(shí)例失效時(shí),服務(wù)仍然可用,因?yàn)樾碌恼?qǐng)求可由其他冗余的服務(wù)器實(shí)例處理。但如果請(qǐng)求正在處理當(dāng)中時(shí)服務(wù)器實(shí)例失效,則不能能得到正確的數(shù)據(jù)。然而容錯(cuò)服務(wù)則總是嚴(yán)格正確的行為。
5失效轉(zhuǎn)移(Failover)
失效轉(zhuǎn)移是另一項(xiàng)使得集群實(shí)現(xiàn)容錯(cuò)的關(guān)鍵技術(shù)。通過(guò)選擇集群中另一個(gè)節(jié)點(diǎn),原始節(jié)點(diǎn)失效時(shí)處理將繼續(xù)下去。失效轉(zhuǎn)移可以顯式地編碼也可以由低層平臺(tái)自動(dòng)執(zhí)行。
6等冪方法(Idempotent methods)
可以用相同的參數(shù)重復(fù)調(diào)用的方法,并且總是得到相同的結(jié)果。這些方法不應(yīng)該影響系統(tǒng)狀態(tài),可以被重復(fù)地調(diào)用而不必?fù)?dān)心改變系統(tǒng)。例如,“getUsername()”是等冪方法,而“deleteFile()”就不是等冪方法。等冪是HTTP會(huì)話(huà)和EJB失效轉(zhuǎn)移的重要概念。
人的一生都在學(xué)習(xí),所謂活到老學(xué)到老,我認(rèn)為學(xué)習(xí)是使一個(gè)人不斷提升修養(yǎng)的重要途徑。... [詳情]
核心提示雖然Java不是最直接的語(yǔ)言,但是您不需要從頭編寫(xiě)Java程序。有許多優(yōu)秀的Java框架可以編寫(xiě)在Java虛擬機(jī)上運(yùn)行的web和移動(dòng)應(yīng)用程序、微服務(wù)和REST api。... [詳情]
每個(gè)人都有這樣一個(gè)夢(mèng)想,每天輕松,月底拿高薪,每隔一段時(shí)間就能來(lái)一場(chǎng)說(shuō)走就走的旅行。也許你不信,你來(lái)瘋狂學(xué)院,我們就告訴你如何輕松拿高薪。... [詳情]
這篇文章對(duì)Java編程語(yǔ)言的基礎(chǔ)知識(shí)作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考。... [詳情]
討論不同實(shí)現(xiàn)之前,理解集群技術(shù)的概念是很有意義的,我希望不僅能給你提供關(guān)于J2EE集群產(chǎn)品基本的設(shè)計(jì)理念和概念,還可以概括性的描繪不同的集群實(shí)現(xiàn),使它們更容易被理解。... [詳情]
現(xiàn)在JAVA越來(lái)越流行,面對(duì)流行以及多層架構(gòu)應(yīng)用,使應(yīng)用程序的實(shí)用性得到了很大的提高,那么到底什么是Java框架呢?現(xiàn)在我就和大家聊聊什么是Java框架.... [詳情]