本發(fā)明涉及領域,尤其涉及一種長連接服務器升級方法及系統(tǒng)。
背景技術:
隨著互聯(lián)網(wǎng)技術的發(fā)展,很多智能設備都需要接入互聯(lián)網(wǎng),為了滿足海量設備的接入(一般接入量會達到千萬級別),服務器采用集群,即用很多臺服務器來提供服務。
服務器側的長連接程序有時會需要升級,升級就要中斷服務,中斷服務后,該服務器上的長連接會全部斷開,要等到服務重啟后,設備再重新連接,一般達數(shù)分鐘之久,這樣服務器就很難提供無間斷的服務。
技術實現(xiàn)要素:
為解決上述技術問題,本發(fā)明提供一種長連接服務器升級方法及系統(tǒng),能夠使得長連接服務器升級時服務不中斷。
本發(fā)明提供的技術方案如下:
本發(fā)明公開了一種長連接服務器升級方法,包括步驟:S100、當需要升級時,升級服務器向連接的設備發(fā)送第一連接轉移命令;S200、當設備接收到所述第一連接轉移命令時,斷開與升級服務器的連接,并根據(jù)所述第一連接轉移命令建立與轉移服務器的連接;S300、當設備與升級服務器斷開連接后,升級服務器開始升級,并在升級完成后根據(jù)預存的設備列表生成恢復連接命令并發(fā)送至轉移服務器;S400、當接收到所述恢復連接命令時,轉移服務器生成第二連接轉移命令,并根據(jù)所述恢復連接命令向對應的設備發(fā)送所述第二連接轉移命令;S500、設備接收所述第二連接轉移命令并根據(jù)所述第二連接轉移命令建立與升級服務器的連接。
本發(fā)明在升級服務器升級的時候將連接的設備轉移到另一臺轉移服務器,當升級完成后再將設備連接到當前的升級服務器,有效保證了服務器在升級時不中斷服務,從而不影響服務質(zhì)量,同時,服務恢復后,每臺服務器的壓力仍然可以保持比較平均。
進一步優(yōu)選的,所述步驟S100之前還包括步驟:S010、升級服務器設置需要到轉移的轉移服務器的IP地址。
進一步優(yōu)選的,所述步驟S100之前還包括步驟:S020、升級服務器保存所有與其連接的設備的編號,根據(jù)所有設備的編號生成設備列表。
進一步優(yōu)選的,所述第一連接轉移命令包括需要轉移到的轉移服務器的IP地址;所述步驟S200“根據(jù)所述第一連接轉移命令建立與轉移服務器的連接”具體包括:S210、設備獲取所述第一連接轉移命令中的需要轉移到的轉移服務器的IP地址;S220、向該IP地址發(fā)起連接請求,建立與轉移服務器的連接。
進一步優(yōu)選的,所述恢復連接命令包括需要恢復連接的設備的編號;所述第二連接轉移命令包括需要轉移到的升級服務器的IP地址;所述步驟S400“根據(jù)所述恢復連接命令向對應的設備發(fā)送所述第二連接轉移命令”具體包括:S410、轉移服務器接收所述恢復連接命令,并根據(jù)所述恢復連接命令獲取需要恢復連接的設備的編號;S420、向所述編號對應的設備發(fā)送所述第二連接轉移命令;所述步驟S500“設備接收所述第二連接轉移命令并根據(jù)所述第二連接轉移命令建立與升級服務器的連接”具體包括:S510、設備獲取所述第二連接轉移命令中的需要轉移到的升級服務器的IP地址;S520、向該IP地址發(fā)起連接請求,建立與升級服務器的連接。
本發(fā)明還公開了一種長連接服務器升級系統(tǒng),包括:升級服務器、至少一個與升級服務器連接的設備以及轉移服務器;所述升級服務器包括第一連接轉移命令生成模塊、升級模塊、恢復連接命令生成模塊;所述設備包括連接斷開模塊、連接建立模塊;所述轉移服務器包括第二連接轉移命令生成模塊和連接轉移模塊;所述第一連接轉移命令生成模塊用于當需要升級時向連接的所述設備發(fā)送第一連接轉移命令;所述連接斷開模塊用于接收到所述第一連接轉移命令時,斷開與升級服務器的連接;所述連接建立模塊用于根據(jù)所述第一連接轉移命令建立與轉移服務器的連接;所述升級模塊用于當設備與升級服務器斷開連接后,升級服務器開始升級;所述恢復連接命令生成模塊用于當升級完成后根據(jù)預存的設備列表生成恢復連接命令并發(fā)送至所述轉移服務器;所述第二連接轉移命令生成模塊用于當接收到所述恢復連接命令時生成第二連接轉移命令;所述連接轉移模塊用于根據(jù)所述恢復連接命令向對應的設備發(fā)送所述第二連接轉移命令;所述連接建立模塊還用于接收所述第二連接轉移命令并根據(jù)所述第二連接轉移命令建立與升級服務器的連接。
進一步優(yōu)選的,所述升級服務器還包括:設置模塊,用于預先設置需要到轉移的轉移服務器的IP地址。
進一步優(yōu)選的,所述升級服務器還包括:設備列表生成模塊,用于保存所有與其連接的設備的編號,根據(jù)所有設備的編號生成設備列表。
進一步優(yōu)選的,所述連接建立模塊具體包括:IP地址獲取子模塊,用于獲取所述第一連接轉移命令中的需要轉移到的轉移服務器的IP地址;連接子模塊,用于向該IP地址發(fā)起連接請求,建立與轉移服務器的連接。
進一步優(yōu)選的,所述連接轉移模塊具體包括:編號獲取子模塊,用于根據(jù)所述恢復連接命令獲取需要恢復連接的設備的編號;轉移命令發(fā)送子模塊,用于向所述編號對應的設備發(fā)送所述第二連接轉移命令;所述IP地址獲取子模塊還用于獲取所述第二連接轉移命令中的需要轉移到的升級服務器的IP地址;所述連接子模塊還用于向該IP地址發(fā)起連接請求,建立與升級服務器的連接。
與現(xiàn)有技術相比,本發(fā)明在升級服務器升級的時候將連接的設備轉移到另一臺轉移服務器,當升級完成后再將設備連接到當前的升級服務器,有效保證了服務器在升級時不中斷服務,從而不影響服務質(zhì)量,同時,服務恢復后,每臺服務器的壓力仍然可以保持比較平均。
附圖說明
下面將以明確易懂的方式,結合附圖說明優(yōu)選實施方式,對本發(fā)明予以進一步說明。
圖1為本發(fā)明一種長連接服務器升級方法的主要步驟示意圖;
圖2為本發(fā)明一種長連接服務器升級方法的時序圖;
圖3為本發(fā)明一種長連接服務器升級系統(tǒng)的組成示意圖;
圖4為本發(fā)明一種長連接服務器升級系統(tǒng)的長連接服務的基本結構圖。
附圖標號說明:
100、升級服務器,110、第一連接轉移命令生成模塊,120、升級模塊,130、恢復連接命令生成模塊;
200、設備,210、連接斷開模塊,220、連接建立模塊;
300、轉移服務器,310、第二連接轉移命令生成模塊,320、連接轉移模塊。
具體實施方式
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對照附圖說明本發(fā)明的具體實施方式。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖,并獲得其他的實施方式。
為使圖面簡潔,各圖中只示意性地表示出了與本發(fā)明相關的部分,它們并不代表其作為產(chǎn)品的實際結構。另外,以使圖面簡潔便于理解,在有些圖中具有相同結構或功能的部件,僅示意性地繪示了其中的一個,或僅標出了其中的一個。在本文中,“一個”不僅表示“僅此一個”,也可以表示“多于一個”的情形。
圖1為本發(fā)明一種長連接服務器升級方法的主要步驟示意圖,如圖1所示,一種長連接服務器升級方法,包括步驟:S100、當需要升級時,升級服務器向連接的設備發(fā)送第一連接轉移命令;S200、當設備接收到所述第一連接轉移命令時,斷開與升級服務器的連接,并根據(jù)所述第一連接轉移命令建立與轉移服務器的連接;S300、當設備與升級服務器斷開連接后,升級服務器開始升級,并在升級完成后根據(jù)預存的設備列表生成恢復連接命令并發(fā)送至轉移服務器;S400、當接收到所述恢復連接命令時,轉移服務器生成第二連接轉移命令,并根據(jù)所述恢復連接命令向對應的設備發(fā)送所述第二連接轉移命令;S500、設備接收所述第二連接轉移命令并根據(jù)所述第二連接轉移命令建立與升級服務器的連接。
本發(fā)明在升級服務器升級的時候將連接的設備轉移到另一臺轉移服務器,當升級完成后再將設備連接到當前的升級服務器,有效保證了服務器在升級時不中斷服務,從而不影響服務質(zhì)量,同時,服務恢復后,每臺服務器的壓力仍然可以保持比較平均。
優(yōu)選的,所述步驟S100之前還包括步驟:S010、升級服務器設置需要到轉移的轉移服務器的IP地址。
優(yōu)選的,所述步驟S100之前還包括步驟:S020、升級服務器保存所有與其連接的設備的編號,根據(jù)所有設備的編號生成設備列表。
優(yōu)選的,所述第一連接轉移命令包括需要轉移到的轉移服務器的IP地址;所述步驟S200“根據(jù)所述第一連接轉移命令建立與轉移服務器的連接”具體包括:S210、設備獲取所述第一連接轉移命令中的需要轉移到的轉移服務器的IP地址;S220、向該IP地址發(fā)起連接請求,建立與轉移服務器的連接。
具體的,所述第一連接轉移命令包括兩個元素:
{“command”:”move”,”toServer”:”A.B.C.D”}。其中toServer為需要轉移到的轉移服務器的IP地址。
當設備獲取到轉移服務器的IP地址后向該IP地址發(fā)起連接請求,與轉移服務器建立連接,從而完成設備連接轉移。
優(yōu)選的,所述恢復連接命令包括需要恢復連接的設備的編號;所述第二連接轉移命令包括需要轉移到的升級服務器的IP地址;所述步驟S400“根據(jù)所述恢復連接命令向對應的設備發(fā)送所述第二連接轉移命令”具體包括:S410、轉移服務器接收所述恢復連接命令,并根據(jù)所述恢復連接命令獲取需要恢復連接的設備的編號;S420、向所述編號對應的設備發(fā)送所述第二連接轉移命令;所述步驟S500“設備接收所述第二連接轉移命令并根據(jù)所述第二連接轉移命令建立與升級服務器的連接”具體包括:S510、設備獲取所述第二連接轉移命令中的需要轉移到的升級服務器的IP地址;S520、向該IP地址發(fā)起連接請求,建立與升級服務器的連接。
具體的,所述恢復連接命令包括兩個元素:
{“command”:”recover”,”SN”:”deviceSN”}。Command為recover,即恢復,SN是設備的SN號,該序號是設備的唯一編號,所有設備的編號均保存在升級服務器的設備列表中。
升級服務器根據(jù)設備列表為每個設備生成恢復連接命令,其中包含唯一標識某個設備的編號,轉移服務器接收到所述恢復連接命令時,根據(jù)其中的設備的編號向對應的設備發(fā)送第二連接轉移命令。
所述第二連接轉移命令與第一連接轉移命令實質(zhì)上為相同的函數(shù),僅函數(shù)中的參數(shù)不同。
第二連接轉移命令包含兩個元素:
{“command”:”move”,”toServer”:”E.F.G.H”}。其中toServer為需要轉移到的升級服務器的IP地址。
當設備獲取到升級服務器的IP地址后向該IP地址發(fā)起連接請求,與升級服務器建立連接,從而完成設備連接恢復。
圖2為本發(fā)明一種長連接服務器升級方法的時序圖,其主要步驟描述如下:
A1.在需要升級的長連接服務器即升級服務器側設置轉移服務器的地址。
A2.升級服務器保存所有設備的編號,生成設備列表,然后發(fā)送第一連接轉移命令給所有設備。
A3.設備接收到以上第一連接轉移命令后,立即斷開與原有的升級服務器之間的連接,與轉移服務器建立連接。在這段時間內(nèi),所有的消息報文有轉移服務器轉發(fā)。
A4.當所有設備的連接都斷開后,升級服務器開始升級服務。
A5.當服務升級完畢后,升級服務器發(fā)送恢復連接命令到轉移服務器,目的將保存到設備列表中的設備重新連接回來。
A6.轉移服務器收到恢復連接命令后,發(fā)送第二連接轉移命令給設備,命令設備轉移連接。
A7.設備收到第二連接轉移命令后,立即斷開與轉移服務器的連接,并且與之前的升級服務器重新建立連接。此時,連接已經(jīng)全部恢復。
通過以上方法,可以做到長連接服務器升級,不影響設備的服務的效果。
圖3為本發(fā)明一種長連接服務器升級系統(tǒng)的組成示意圖,作為本發(fā)明的一個實施例,如圖3所示,一種長連接服務器升級系統(tǒng),包括:升級服務器100、至少一個與升級服務器100連接的設備200以及轉移服務器300;所述升級服務器100包括第一連接轉移命令生成模塊110、升級模塊120、恢復連接命令生成模塊130;所述設備200包括連接斷開模塊210、連接建立模塊220;所述轉移服務器300包括第二連接轉移命令生成模塊310和連接轉移模塊320;所述第一連接轉移命令生成模塊110用于當需要升級時向連接的所述設備200發(fā)送第一連接轉移命令;所述連接斷開模塊210用于接收到所述第一連接轉移命令時,斷開與升級服務器100的連接;所述連接建立模塊220用于根據(jù)所述第一連接轉移命令建立與轉移服務器300的連接;所述升級模塊120用于當設備200與升級服務器100斷開連接后,開始升級;所述恢復連接命令生成模塊130用于當升級完成后根據(jù)預存的設備列表生成恢復連接命令并發(fā)送至所述轉移服務器300;所述第二連接轉移命令生成模塊310用于當接收到所述恢復連接命令時生成第二連接轉移命令;所述連接轉移模塊320用于根據(jù)所述恢復連接命令向對應的設備200發(fā)送所述第二連接轉移命令;所述連接建立模塊220還用于接收所述第二連接轉移命令并根據(jù)所述第二連接轉移命令建立與升級服務器100的連接。
本發(fā)明在升級服務器100升級的時候將連接的設備200轉移到另一臺轉移服務器300,當升級完成后再將設備200連接到當前的升級服務器100,有效保證了服務器在升級時不中斷服務,從而不影響服務質(zhì)量,同時,服務恢復后,每臺服務器的壓力仍然可以保持比較平均。
優(yōu)選的,所述升級服務器100還包括:設置模塊,用于預先設置需要到轉移的轉移服務器300的IP地址。
優(yōu)選的,所述升級服務器100還包括:設備列表生成模塊,用于保存所有與其連接的設備200的編號,根據(jù)所有設備200的編號生成設備列表。
優(yōu)選的,所述連接建立模塊220具體包括:IP地址獲取子模塊,用于獲取所述第一連接轉移命令中的需要轉移到的轉移服務器300的IP地址;連接子模塊,用于向該IP地址發(fā)起連接請求,建立與轉移服務器300的連接。
優(yōu)選的,所述連接轉移模塊320具體包括:編號獲取子模塊,用于根據(jù)所述恢復連接命令獲取需要恢復連接的設備200的編號;轉移命令發(fā)送子模塊,用于向所述編號對應的設備200發(fā)送所述第二連接轉移命令;所述IP地址獲取子模塊還用于獲取所述第二連接轉移命令中的需要轉移到的升級服務器100的IP地址;所述連接子模塊還用于向該IP地址發(fā)起連接請求,建立與升級服務器100的連接。
圖4為本發(fā)明一種長連接服務器升級系統(tǒng)的長連接服務的基本結構圖。如圖4所示,一般有多臺長連接服務器同時服務海量設備,當長連接服務器1需要升級重啟服務時,則該長連接服務器1則為升級服務器,長連接服務器1將會發(fā)送第一連接轉移命令到與其連接的設備1、設備2上,并設置其他長連接服務器中長連接服務器2為轉移服務器。設備1、設備2收到第一連接轉移命令后,立即斷開與長連接服務器1的連接,隨即建立與長連接服務器2之間的連接。等到長連接服務器1的服務升級完畢后,長連接服務器1通知長連接服務器2,發(fā)送恢復連接命令,將之前轉移的設備1和設備2再次轉移過來。長連接服務器2收到恢復連接命令后,向設備1和設備2發(fā)送第二連接轉移命令,設備1和2收到第二連接轉移命令后,斷開與長連接服務器2的連接,再次與之前的長連接服務器1建立連接。這樣可以確保設備與服務器集群之間的連接通道始終是存在的,不會造成服務中斷。
需要說明的是,本裝置中各模塊之間的信息交互、執(zhí)行過程等內(nèi)容與上述方法實施例基于同一構思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
應當說明的是,上述實施例均可根據(jù)需要自由組合。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。