當前,在大規(guī)模在線事務(wù)處理的系統(tǒng)中,普遍使用了OLTP中間來完成事務(wù)處理的核心業(yè)務(wù)邏輯,因而形成了“具有大量并發(fā)短小請求”的特點。其短小是指:對每個請求,中間件服務(wù)器的處理時間都是很短,而且數(shù)據(jù)量較小。與這種系統(tǒng)相對應(yīng)的還有一種使用在線分析處理的系統(tǒng),不僅客戶端數(shù)量小,且對每一個請求服務(wù)器要做長時間、大數(shù)據(jù)量的處理。因此本文所關(guān)注的是前一種系統(tǒng),由于該系統(tǒng)對響應(yīng)時間要求很高,且容易出現(xiàn)單個服務(wù)器無法承受的情況,因而需要進行負載均衡,本文所討論的就是負載均衡的問題。
目前,控制臺的中間件負載均衡的方法有很多,比較常用的有兩種:
一是輪詢方法,類似于計算機操作系統(tǒng)的時間片輪轉(zhuǎn)算法。其原理是將請求輪流分給每一個服務(wù)器,使任務(wù)得到平均分配。這種方法看起來簡單和直觀,但實際上有很多局限性,其中最突出的就是不能實時掌握服務(wù)器當前負載的情況,而將任務(wù)分配給負載過大乃至瀕臨崩潰的服務(wù)器,使相對“清閑”的服務(wù)器依然“清閑”。同時,由于平均分配任務(wù)的方法,是建立在假定每臺服務(wù)器的處理能力一樣的基礎(chǔ)上的,這實際上是難以做到的。因為即使是同一公司同一型號的服務(wù)器,其性能在不同的運行環(huán)境中也是不一樣的(與網(wǎng)絡(luò)連接有關(guān)),而且有可能因買不到與原來同型號的設(shè)備(新設(shè)備可能性能更好,價格更便宜)而不利于以后的系統(tǒng)擴充。
二是主從節(jié)點的方法。原理是將多個服務(wù)器中的某個服務(wù)器作為主節(jié)點,其除了具有中間件的功能外,還充當中間件系統(tǒng)管理者的角色,用以實現(xiàn)負載的均衡,因此成為主從節(jié)點法。這種方法在一些大型商業(yè)中間件中已較多采用,確實起到了負載均衡的作用。當然,讓主節(jié)點既作為中間件系統(tǒng)的管理者,又作為服務(wù)的一個提供者,也導(dǎo)致了一些問題的出現(xiàn)。其中最大的問題就是會因主節(jié)點的崩潰而導(dǎo)致系統(tǒng)的崩潰。因為在事務(wù)處理過程中會出現(xiàn)各種各樣的異常情況,例如大量的請求集中在一起使存儲器吃緊,以及受數(shù)據(jù)庫系統(tǒng)性能的影響,使管理節(jié)點增加崩潰的可能性,導(dǎo)致系統(tǒng)崩潰的可能性等等。