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