問題
可擴(kuò)展性并非Java企業(yè)級平臺規(guī)范內(nèi)的標(biāo)準(zhǔn)組件。相關(guān)技術(shù)通常因供應(yīng)商而異,并且往往需要使用不止一款產(chǎn)品。正因如此,設(shè)計可擴(kuò)展的Java企業(yè)級應(yīng)用才會有些棘手,要完成任務(wù),往往不僅沒有可以參照的實例,而且要求我們必須徹徹底底地理解應(yīng)用。
擴(kuò)展類型
相信你們不是第一次看到這些內(nèi)容。擴(kuò)展一般分為兩大類:縱向擴(kuò)展,和橫向擴(kuò)展。
擴(kuò)展的第一個自然階段是縱向擴(kuò)展。
• 縱向擴(kuò)展:包括給服務(wù)器增加更多資源,例如內(nèi)存、磁盤空間、處理器等。這在某些方案中具備實用價值,但經(jīng)過特定時間點(diǎn)后就會發(fā)現(xiàn),這種擴(kuò)展費(fèi)用高昂,不如借助橫向擴(kuò)展。
• 橫向擴(kuò)展:在這個過程中會增加更多機(jī)器或額外的服務(wù)器實例/節(jié)點(diǎn),這也叫做集群,因為所有服務(wù)器是作為一個集體或集群一起運(yùn)行的。
高可用性不等于可擴(kuò)展性
系統(tǒng)高度可用,并不表示系統(tǒng)可擴(kuò)展。高可用性只是意味著,如果當(dāng)前處理節(jié)點(diǎn)崩潰,請求會傳遞或轉(zhuǎn)移到集群中的另一個節(jié)點(diǎn),以便從開始處繼續(xù)。可擴(kuò)展性則是通過增加可用資源而提升系統(tǒng)特定性能的能力,即使將失敗請求傳遞到另一個節(jié)點(diǎn),也無法保證應(yīng)用會在這種場景中正確運(yùn)行。
下面我們來了解一些關(guān)于可擴(kuò)展性的觀點(diǎn)和相關(guān)討論。
讓橫向擴(kuò)展的集群達(dá)到負(fù)載均衡
假設(shè)你已經(jīng)縱向擴(kuò)展至最大容量,現(xiàn)在又用多個節(jié)點(diǎn)形成集群,將系統(tǒng)進(jìn)行了橫向擴(kuò)展。接下來你要做的可能是在集群基礎(chǔ)架構(gòu)前放置一臺負(fù)載均衡器,讓負(fù)載分散在集群各部分之間。
更多Java培訓(xùn),Java視頻,Java教程盡在動力節(jié)點(diǎn)Java培訓(xùn),關(guān)注動力節(jié)點(diǎn)官方微信,獲得一手Java全新知識。