本發(fā)明涉及多服務(wù)器熱備領(lǐng)域,特別涉及一種多服務(wù)器切換方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)(移動互聯(lián)網(wǎng))高速發(fā)展,用戶越來越依賴服務(wù)器提供的數(shù)據(jù)服務(wù),對數(shù)據(jù)的可用性需求增強,需要更加隨時隨地的訪問服務(wù)器提供的服務(wù)(數(shù)據(jù));為避免服務(wù)器故障,導致用戶無法正常獲取服務(wù),因此采用多機熱備方案,當主服務(wù)器失活,則從服務(wù)器應(yīng)該切換為主服務(wù)器,繼續(xù)為用戶提供服務(wù)。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種多服務(wù)器切換方法及系統(tǒng),使原主服務(wù)器失活后能夠順利的由從服務(wù)器代替其功能繼續(xù)運行。其具體方案如下:
一種多服務(wù)器切換方法,包括:
當從服務(wù)器組檢測到原主服務(wù)器失活,則所述從服務(wù)器組中的各從服務(wù)器相互發(fā)送時間戳;
每個從服務(wù)器利用接收到的時間戳判斷自身是否為備用主服務(wù)器;
當所述從服務(wù)器組無法利用時間戳選定作為所述備用主服務(wù)器的從服務(wù)器,則所述從服務(wù)器組中的各從服務(wù)器按照預(yù)先設(shè)定的主機名順序,在所述從服務(wù)器組中確認一個從服務(wù)器為所述備用主服務(wù)器。
優(yōu)選的,所述優(yōu)先度最高的從服務(wù)器變?yōu)閭溆弥鞣?wù)器之后,還包括:
所述備用主服務(wù)器發(fā)送切換通知到各從服務(wù)器。
優(yōu)選的,所述所述從服務(wù)器組中的各從服務(wù)器按照預(yù)先設(shè)定的主機名順序,在所述從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器的過程,包括:
所述從服務(wù)器組中的各從服務(wù)器查詢以表格形式保存的主機名排序表,利用主機名排序表在所述從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器;
其中,主機名排序表中保存有從服務(wù)器的主機名,并對應(yīng)著相應(yīng)的順序。
優(yōu)選的,所述所述從服務(wù)器組中的各從服務(wù)器按照預(yù)先設(shè)定的主機名順序,在所述從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器的過程,包括:
所述從服務(wù)器組中的各從服務(wù)器查詢以表格形式保存的主機名排序表,利用主機名排序表在所述從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器;
其中,主機名排序表中保存有從服務(wù)器的主機名,并對應(yīng)著相應(yīng)的順序。
優(yōu)選的,還包括:
當所述備用主服務(wù)器檢測到所述原主服務(wù)器恢復正常,則將所述原主服務(wù)器失活期間的數(shù)據(jù)發(fā)送給所述原主服務(wù)器,并所述備用主服務(wù)器變?yōu)樗鰪姆?wù)器組中的一個從服務(wù)器。
本發(fā)明還公開了一種多服務(wù)器切換系統(tǒng),包括:
發(fā)送模塊,用于當從服務(wù)器組檢測到原主服務(wù)器失活,則所述從服務(wù)器組中的各從服務(wù)器相互發(fā)送時間戳;
判斷模塊,用于每個從服務(wù)器利用接收到的時間戳判斷自身是否為備用主服務(wù)器;
確認模塊,用于當所述從服務(wù)器組無法利用時間戳選定作為所述備用主服務(wù)器的從服務(wù)器,則所述從服務(wù)器組中的各從服務(wù)器按照預(yù)先設(shè)定的主機名順序,在所述從服務(wù)器組中確認一個從服務(wù)器為所述備用主服務(wù)器。
優(yōu)選的,還包括:
通知模塊,用于所述備用主服務(wù)器發(fā)送切換通知到各從服務(wù)器。
優(yōu)選的,所述確認模塊,具體用于所述從服務(wù)器組中的各從服務(wù)器查詢以表格形式保存的主機名排序表,利用主機名排序表在所述從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器;
其中,主機名排序表中保存有從服務(wù)器的主機名,并對應(yīng)著相應(yīng)的順序。
優(yōu)選的,還包括:
交互模塊,用于各從服務(wù)器相互發(fā)送確認信息,每個從服務(wù)器利用各從服務(wù)器發(fā)送的確認信息,判斷自身優(yōu)先度是否最高,如果是,則變?yōu)樗鰝溆弥鞣?wù)器;其中,確認信息中包括從服務(wù)器的主機名排序表。
優(yōu)選的,還包括:
數(shù)據(jù)發(fā)送模塊,用于當所述備用主服務(wù)器檢測到所述原主服務(wù)器恢復正常,則將所述原主服務(wù)器失活期間的數(shù)據(jù)發(fā)送給所述原主服務(wù)器;
切換模塊,用于所述備用主服務(wù)器變?yōu)樗鰪姆?wù)器組中的一個從服務(wù)器。
本發(fā)明中,多服務(wù)器切換方法,包括:當從服務(wù)器組檢測到原主服務(wù)器失活,則從服務(wù)器組中的各從服務(wù)器相互發(fā)送時間戳;每個從服務(wù)器利用接收到的時間戳判斷自身是否為備用主服務(wù)器;當從服務(wù)器組無法利用時間戳選定作為備用主服務(wù)器的從服務(wù)器,則從服務(wù)器組中的各從服務(wù)器按照預(yù)先設(shè)定的主機名順序,在從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器??梢?,本發(fā)明在原主服務(wù)器失活的情況下,各從服務(wù)器相互發(fā)送時間戳,每個從服務(wù)器利用接收到的時間戳判斷自身發(fā)送的時間戳中記載的時間判斷自身是否優(yōu)先度最高,如果是,則作為備用主服務(wù)器,且在從服務(wù)器組無法利用時間戳選定作為備用主服務(wù)器的從服務(wù)器時,,從服務(wù)器組可以按照主機名順序,按順序確認出應(yīng)該作為備用主服務(wù)器的從服務(wù)器,從而保證了原主服務(wù)器失活后能夠順利的由從服務(wù)器代替其功能繼續(xù)運行,為用戶提供可靠的數(shù)據(jù)服務(wù)。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例公開的一種多服務(wù)器切換方法流程示意圖;
圖2為本發(fā)明實施例公開的一種多服務(wù)器切換系統(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例公開了一種多服務(wù)器切換方法,參見圖1所示,該方法包括:
步驟s11:當從服務(wù)器組檢測到原主服務(wù)器失活,則從服務(wù)器組中的各從服務(wù)器相互發(fā)送時間戳。
具體的,在正常運行時,從服務(wù)器組能夠接收到原主服務(wù)器發(fā)送的在運信號,當原主服務(wù)器失活,從服務(wù)器組在預(yù)定的第一閾值內(nèi)未能接收到原主服務(wù)器發(fā)送的在運信號,便可得知原主服務(wù)器失活,例如,從服務(wù)器組在10秒內(nèi)未能接收到原主服務(wù)器發(fā)送的在運信號,便得知原主服務(wù)器失活,或接收到原主服務(wù)器失活的信息,得知原主服務(wù)器失活。
其中,當從服務(wù)器組檢測到原主服務(wù)器失活,則從服務(wù)器組中的每個從服務(wù)器都會發(fā)送時間戳到各個從服務(wù)器中,時間戳中記載的時間可以為各從服務(wù)器得知主服務(wù)器失活的時間,也可以為各從服務(wù)器發(fā)送時間戳的時間,還可以進行延遲設(shè)定,在此不做限定。
可以理解的是,由于各服務(wù)器之間通信存在不同程度的延遲,所以各從服務(wù)器得知原主服務(wù)器失活的時間會存在差別,同時,每個從服務(wù)器在得知原主服務(wù)器失活后,響應(yīng)時間也會因為從服務(wù)器當前的運行狀態(tài)而不同,進而影響發(fā)送時間,所以可以利用接收時間和發(fā)送時間作為時間戳中的時間,在實際應(yīng)用中,為了避免備用主服務(wù)器的確定過于隨機,因此可以在從服務(wù)器上對時間戳中的時間進行不同的延遲設(shè)定,以起到一定的排序作用。
例如,共有3個從服務(wù)器,分別為第一從服務(wù)器、第二從服務(wù)器和第三從服務(wù)器,第一從服務(wù)器得知原主服務(wù)器的時間為8:30,發(fā)送時間戳時間為8:33,第二從服務(wù)器得知原主服務(wù)器的時間為8:31,發(fā)送時間戳時間為8:32,第三從服務(wù)器得知原主服務(wù)器的時間為8:33,發(fā)送時間戳時間為8:35;當以得知時間為準時,第一從服務(wù)器、第二從服務(wù)器和第三從服務(wù)器的時間戳中的時間分別為8:30、8:31和8:33;當以發(fā)送時間為準時,第一從服務(wù)器、第二從服務(wù)器和第三從服務(wù)器的時間戳中的時間分別為8:33、8:32和8:35;當有延遲是定時,用戶預(yù)先對第二從服務(wù)器進行延遲設(shè)定,對第二從服務(wù)器的時間戳中的時間延后2分鐘,第二從服務(wù)器以得知時間為準時,時間戳的時間為8:33,以發(fā)送時間為準時,時間戳的時間為8:34。
步驟s12:每個從服務(wù)器利用接收到的時間戳判斷自身是否為備用主服務(wù)器。
具體的,每個從服務(wù)器都將接收到其他從服務(wù)器發(fā)送的時間戳,并利用每個時間戳內(nèi)記載的時間與自身發(fā)送的時間戳中的時間進行對比,判斷自身發(fā)送的時間戳中記載的時間是否為最早的,如果是,則可以作為備用主服務(wù)器,并進行切換,執(zhí)行備用主服務(wù)器的功能。
例如,共有3個從服務(wù)器,分別為第一從服務(wù)器、第二從服務(wù)器和第三從服務(wù)器,第一從服務(wù)器、第二從服務(wù)器和第三從服務(wù)器的時間戳中的時間分別為8:30、8:31和8:33,則第一從服務(wù)器的時間最早,因此第一從服務(wù)器作為備用主服務(wù)器。
步驟s13:當從服務(wù)器組無法利用時間戳選定作為備用主服務(wù)器的從服務(wù)器,則從服務(wù)器組中的各從服務(wù)器按照預(yù)先設(shè)定的主機名順序,在從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器。
在實際應(yīng)用中,難免會出現(xiàn)多個從服務(wù)器的時間戳中的時間一樣的情況,為此,當多個從服務(wù)器發(fā)送的時間戳一樣,為此,從服務(wù)器組中的各從服務(wù)器查詢以表格形式保存的主機名排序表,利用主機名排序表在從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器;主機名排序表中保存有從服務(wù)器的主機名,并對應(yīng)著相應(yīng)的順序。本發(fā)明實施例中,對主機名的排序保存方式不僅局限于采用表格形式,也可以采用其他形式進行保存,在此不做限定。
具體的,主機名排序表中從服務(wù)器的主機名對應(yīng)的順序是由用戶預(yù)先設(shè)定的,從服務(wù)器按照此順序切換,例如,從服務(wù)器組中有3個從服務(wù)器,主機名分別為第一從服務(wù)器、第二從服務(wù)器和第三從服務(wù)器,設(shè)定第一從服務(wù)器優(yōu)先度最高順序為1,第二從服務(wù)器優(yōu)先度次之順序為2,第二從服務(wù)器優(yōu)先度最低順序為3,如,當原主服務(wù)器失活,則依照主機名順序第一從服務(wù)器變?yōu)閭溆弥鞣?wù)器。
可見,本發(fā)明在原主服務(wù)器失活的情況下,各從服務(wù)器相互發(fā)送時間戳,每個從服務(wù)器利用接收到的時間戳判斷自身發(fā)送的時間戳中記載的時間判斷自身是否優(yōu)先度最高,如果是,則作為備用主服務(wù)器,且在從服務(wù)器組無法利用時間戳選定作為備用主服務(wù)器的從服務(wù)器時,,從服務(wù)器組可以按照主機名順序,按順序確認出應(yīng)該作為備用主服務(wù)器的從服務(wù)器,從而保證了原主服務(wù)器失活后能夠順利的由從服務(wù)器代替其功能繼續(xù)運行,為用戶提供可靠的數(shù)據(jù)服務(wù)。
需要說明的是,如果當原主服務(wù)器失活,而從服務(wù)器組中也有從服務(wù)器失活,將會影響到從服務(wù)器切換到備用主服務(wù)器的順序,尤其是當優(yōu)先度最高的從服務(wù)器失活,則需要下一個從服務(wù)器切換為備用主服務(wù)器,此時如果各從服務(wù)器間沒有信息交互,則很難完成原主服務(wù)器的切換,為此,當各從服務(wù)器確認自身的主機名順序后,還可以相互發(fā)送確認信息,每個從服務(wù)器利用各從服務(wù)器發(fā)送的確認信息,判斷自身優(yōu)先度是否最高,如果是,則變?yōu)閭溆弥鞣?wù)器。
具體的,從服務(wù)器利用接收到的其余從服務(wù)器發(fā)送的確認信息中包括的主機名順序,與自身的主機名順序進行對比,判斷自身優(yōu)先度是否最高,如果是,則變?yōu)閭溆弥鞣?wù)器,如果否,則不執(zhí)行操作。
其中,從服務(wù)器能夠得知失活的主服務(wù)器是原主服務(wù)器,還是由從服務(wù)器轉(zhuǎn)換為的備用主服務(wù)器,因此,從服務(wù)器通過判斷與失活的主服務(wù)器相比,自身的主機名順序是否是優(yōu)先度最高的從服務(wù)器,例如,從服務(wù)器組中有3個從服務(wù)器,主機名分別為第一從服務(wù)器、第二從服務(wù)器和第三從服務(wù)器,設(shè)定第一從服務(wù)器優(yōu)先度最高,第二從服務(wù)器次之,第三從服務(wù)器最低,當檢測到主服務(wù)器失活,主服務(wù)器主機名為原主服務(wù)器,則此時第一從服務(wù)器優(yōu)先度最高,所以第一從服務(wù)器切換為備用主服務(wù)器;若主服務(wù)器主機名為第一從服務(wù)器,則此時第二從服務(wù)器優(yōu)先度最高,所以第二從服務(wù)器切換為備用主服務(wù)器;若主服務(wù)器主機名為第二從服務(wù)器,則此時第三從服務(wù)器優(yōu)先度最高,所以第三從服務(wù)器切換為備用主服務(wù)器。
進一步的,如果各從服務(wù)器之間不發(fā)送確認信息進行,在優(yōu)先度最高的從服務(wù)器變?yōu)閭溆弥鞣?wù)器之后,為防止出現(xiàn)因從服務(wù)器失活而導致的沒有從服務(wù)器變?yōu)樵鞣?wù)器的情況,當優(yōu)先度最高的從服務(wù)器變?yōu)閭溆弥鞣?wù)器后發(fā)送切換通知到各從服務(wù)器,以使各從服務(wù)器得知切換成功,若各從服務(wù)器在預(yù)定的第二閾值內(nèi)未能收到由備用主服務(wù)器發(fā)送的切換通知,則說明未能完成主、從服務(wù)器之間的切換,當前仍未有原主服務(wù)器在運作,各從服務(wù)器將再次利用自身的靜態(tài)分配順序,判斷是否切換為備用主服務(wù)器。
例如,第二閾值為60秒,當各從服務(wù)器檢測到原主服務(wù)器失活,則各從服務(wù)器利用自身靜態(tài)分配順序,確認優(yōu)先度最高的第一從服務(wù)器應(yīng)當切換為備用主服務(wù)器,60秒過后,各從服務(wù)器仍未收到應(yīng)由第一從服務(wù)器切換為備用主服務(wù)器發(fā)送的切換通知,則說明第一從服務(wù)器切換失敗,優(yōu)先度次高的第二從服務(wù)器進行切換,60秒后,若仍未收到切換通知,則依據(jù)靜態(tài)分配順序由第三從服務(wù)器進行切換,第三從服務(wù)器切換為備用主服務(wù)器后,則在60秒內(nèi)發(fā)送切換通知,使各仍未切換的從服務(wù)器得知切換操作已完成。
在實際應(yīng)用中,當原主服務(wù)器恢復正常時,為使原主服務(wù)器恢復工作,需要使備用主服務(wù)器重新切換為從服務(wù)器,由原主服務(wù)器繼續(xù)原來的工作,因此,當備用主服務(wù)器檢測到原主服務(wù)器恢復正常,則將原主服務(wù)器失活期間的數(shù)據(jù)發(fā)送給原主服務(wù)器,并備用主服務(wù)器變?yōu)閺姆?wù)器組中的一個從服務(wù)器。
具體的,備用主服務(wù)器將其運行期間的數(shù)據(jù)全部發(fā)送給原主服務(wù)器,即,將原主服務(wù)器恢復正常之前的數(shù)據(jù)全部發(fā)送給原主服務(wù)器,以使原主服務(wù)器能夠繼續(xù)處理數(shù)據(jù),不會出現(xiàn)數(shù)據(jù)的丟失和間斷,保證運行的穩(wěn)定性,在傳輸完數(shù)據(jù)后,備用主服務(wù)器恢復其之前的運行身份,變?yōu)閺姆?wù)器,繼續(xù)工作。
本發(fā)明實施例還相應(yīng)公開了一種多服務(wù)器切換系統(tǒng),參見圖2所示,該系統(tǒng)包括:
發(fā)送模塊11,用于當從服務(wù)器組檢測到原主服務(wù)器失活,則從服務(wù)器組中的各從服務(wù)器相互發(fā)送時間戳;
判斷模塊12,用于每個從服務(wù)器利用接收到的時間戳判斷自身是否為備用主服務(wù)器;
確認模塊13,用于當從服務(wù)器組無法利用時間戳選定作為備用主服務(wù)器的從服務(wù)器,則從服務(wù)器組中的各從服務(wù)器按照預(yù)先設(shè)定的主機名順序,在從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器。
可見,本發(fā)明實施例在原主服務(wù)器失活的情況下,各從服務(wù)器相互發(fā)送時間戳,每個從服務(wù)器利用接收到的時間戳判斷自身發(fā)送的時間戳中記載的時間判斷自身是否優(yōu)先度最高,如果是,則作為備用主服務(wù)器,且在從服務(wù)器組無法利用時間戳選定作為備用主服務(wù)器的從服務(wù)器時,,從服務(wù)器組可以按照主機名順序,按順序確認出應(yīng)該作為備用主服務(wù)器的從服務(wù)器,從而保證了原主服務(wù)器失活后能夠順利的由從服務(wù)器代替其功能繼續(xù)運行,為用戶提供可靠的數(shù)據(jù)服務(wù)。
具體的,上述確認模塊13,具體用于從服務(wù)器組中的各從服務(wù)器查詢以表格形式保存的主機名排序表,利用主機名排序表在從服務(wù)器組中確認一個從服務(wù)器為備用主服務(wù)器;其中,主機名排序表中保存有從服務(wù)器的主機名,并對應(yīng)著相應(yīng)的順序。
本發(fā)明實施例中,還可以包括通知模塊、交互模塊、數(shù)據(jù)發(fā)送模塊11和切換模塊;其中,
通知模塊,用于備用主服務(wù)器發(fā)送切換通知到各從服務(wù)器。
交互模塊,用于各從服務(wù)器相互發(fā)送確認信息,每個從服務(wù)器利用各從服務(wù)器發(fā)送的確認信息,判斷自身優(yōu)先度是否最高,如果是,則變?yōu)閭溆弥鞣?wù)器;其中,確認信息中包括從服務(wù)器的主機名排序表。
數(shù)據(jù)發(fā)送模塊11,用于當備用主服務(wù)器檢測到原主服務(wù)器恢復正常,則將原主服務(wù)器失活期間的數(shù)據(jù)發(fā)送給原主服務(wù)器;
切換模塊,用于備用主服務(wù)器變?yōu)閺姆?wù)器組中的一個從服務(wù)器。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種多服務(wù)器切換方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。