服務(wù)器程序熱升級(jí)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及服務(wù)器程序熱升級(jí)的方法及裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,后臺(tái)服務(wù)器在整個(gè)網(wǎng)絡(luò)環(huán)境中的作用越來(lái)越大,但同時(shí)隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,用戶需求也在不斷的發(fā)展,隨著用戶需求的不斷變化及發(fā)展,對(duì)于網(wǎng)絡(luò)后臺(tái)服務(wù)器的要求也越來(lái)越高,同時(shí)網(wǎng)絡(luò)后臺(tái)服務(wù)器所具有的功能也在不斷更新,這使得網(wǎng)絡(luò)后臺(tái)服務(wù)器程序需要不斷的進(jìn)行升級(jí)以滿足客戶的需求。
[0003]現(xiàn)有技術(shù)中,后臺(tái)服務(wù)器程序每次升級(jí)重啟的時(shí)候,會(huì)瞬時(shí)斷開(kāi)連接,造成正在服務(wù)的連接中斷,影響客戶端的體驗(yàn),同時(shí)重啟的瞬間文件操作等都被強(qiáng)制中斷,會(huì)造成數(shù)據(jù)少量丟失,嚴(yán)重的時(shí)候?qū)τ陉P(guān)鍵數(shù)據(jù)操作一半中斷,直接造成數(shù)據(jù)的完整性得不到保障,造成數(shù)據(jù)丟失或者數(shù)據(jù)異常等情況。
[0004]以客戶端正在連接后臺(tái)服務(wù)器進(jìn)行用戶注冊(cè)操作為例,當(dāng)用戶通過(guò)客戶端連接后臺(tái)服務(wù)器進(jìn)行用戶注冊(cè)操作時(shí),若剛好遇到后臺(tái)服務(wù)器重啟升級(jí),則客戶端將根據(jù)連接狀態(tài)提示用戶與后臺(tái)服務(wù)器連接已斷開(kāi),并且在后臺(tái)服務(wù)器重啟之前,用戶都將無(wú)法再連接后臺(tái)服務(wù)器進(jìn)行后續(xù)操作,在后臺(tái)服務(wù)器升級(jí)重啟后,由于后臺(tái)服務(wù)器已經(jīng)重新升級(jí),因此,用戶需要重新進(jìn)行已經(jīng)進(jìn)行過(guò)的用戶注冊(cè)流程,且由于服務(wù)器重啟升級(jí)的瞬間,文件操作等都被強(qiáng)制中斷,因此,用戶可能注冊(cè)流程可能無(wú)法正確進(jìn)行下去。
[0005]另一種情況下當(dāng)用戶進(jìn)行注冊(cè)流程時(shí)已填寫(xiě)用戶名等關(guān)鍵信息后,后臺(tái)服務(wù)器重啟升級(jí),由于用戶填寫(xiě)用戶名等關(guān)鍵信息后已上傳后臺(tái)服務(wù)器并且寫(xiě)入數(shù)據(jù)庫(kù),因此,后臺(tái)服務(wù)器重啟升級(jí)后,用戶重新進(jìn)行用戶注冊(cè)流程,當(dāng)用戶使用相同的用戶名注冊(cè)時(shí),因?yàn)楹笈_(tái)服務(wù)器已存在該用戶名記錄,因此用戶將得到該用戶名已被注冊(cè)的提示,但后臺(tái)服務(wù)器中該用戶名的相關(guān)信息是不完整的,即用戶無(wú)法正常使用該用戶名進(jìn)行登錄,使得該用戶名成為無(wú)主用戶名,占用系統(tǒng)資源,同時(shí)也使得用戶不能使用自己滿意的用戶名。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的主要目的在于提供一種服務(wù)器程序熱升級(jí)的方法,旨在解決服務(wù)器程序升級(jí)重啟時(shí),數(shù)據(jù)丟失造成數(shù)據(jù)不完整的技術(shù)問(wèn)題。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種服務(wù)器程序熱升級(jí)的方法,所述服務(wù)器程序熱升級(jí)的方法包括以下步驟:
[0008]當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),服務(wù)器控制當(dāng)前正在運(yùn)行的處理實(shí)例A停止接收業(yè)務(wù)請(qǐng)求,并繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求;
[0009]服務(wù)器通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B處理所述處理實(shí)例B接收到的業(yè)務(wù)請(qǐng)求;
[0010]當(dāng)所述處理實(shí)例A處理完成業(yè)務(wù)請(qǐng)求后,服務(wù)器控制所述處理實(shí)例A退出,服務(wù)器程序熱升級(jí)完成。
[0011]優(yōu)選地,所述當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),服務(wù)器控制當(dāng)前正在運(yùn)行的處理實(shí)例A停止接收業(yè)務(wù)請(qǐng)求,并繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求的步驟包括:
[0012]當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),所述服務(wù)器程序的守護(hù)進(jìn)程關(guān)閉當(dāng)前正在運(yùn)行的處理實(shí)例A的接收功能,使所述處理實(shí)例A停止接收業(yè)務(wù)請(qǐng)求,同時(shí)控制所述處理實(shí)例A繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求。
[0013]優(yōu)選地,所述服務(wù)器通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B處理后續(xù)接收到的業(yè)務(wù)請(qǐng)求的步驟包括:
[0014]所述服務(wù)器程序的守護(hù)進(jìn)程通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B,并將所述處理實(shí)例B綁定在業(yè)務(wù)請(qǐng)求訪問(wèn)端口上,同時(shí)控制所述處理實(shí)例B接收業(yè)務(wù)請(qǐng)求并處理。
[0015]優(yōu)選地,所述當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),服務(wù)器控制當(dāng)前正在運(yùn)行的處理實(shí)例A停止接收業(yè)務(wù)請(qǐng)求,并繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求的步驟還包括:
[0016]當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),服務(wù)器控制接入層不再向當(dāng)前正在運(yùn)行的處理實(shí)例A發(fā)送業(yè)務(wù)請(qǐng)求,同時(shí)控制當(dāng)前正在運(yùn)行的處理實(shí)例A繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求。
[0017]優(yōu)選地,所述服務(wù)器通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B處理所述處理實(shí)例B接收到的業(yè)務(wù)請(qǐng)求的步驟還包括:
[0018]服務(wù)器通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B,控制接入層將接收到的業(yè)務(wù)請(qǐng)求發(fā)送給所述處理實(shí)例B,同時(shí)控制所述處理實(shí)例B接收業(yè)務(wù)請(qǐng)求并處理。
[0019 ]此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種服務(wù)器程序熱升級(jí)的裝置,所述服務(wù)器程序熱升級(jí)的裝置包括:
[0020]停止接收模塊,用于當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),控制當(dāng)前正在運(yùn)行的處理實(shí)例A停止接收業(yè)務(wù)請(qǐng)求,并繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求;
[0021]新實(shí)例創(chuàng)建模塊,用于通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B處理所述處理實(shí)例B接收到的業(yè)務(wù)請(qǐng)求;
[0022]完成退出模塊,用于當(dāng)所述處理實(shí)例A處理完成業(yè)務(wù)請(qǐng)求后,控制所述處理實(shí)例A退出,服務(wù)器程序熱升級(jí)完成。
[0023]優(yōu)選地,所述停止接收模塊包括:
[0024]關(guān)閉接收單元,用于當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),控制守護(hù)進(jìn)程關(guān)閉當(dāng)前正在運(yùn)行的處理實(shí)例A的接收功能,使所述處理實(shí)例A停止接收業(yè)務(wù)請(qǐng)求,同時(shí)控制所述處理實(shí)例A繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求。
[0025]優(yōu)選地,所述新實(shí)例創(chuàng)建模塊包括:
[0026]創(chuàng)建綁定單元,用于控制守護(hù)進(jìn)程通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B,并將所述處理實(shí)例B綁定在業(yè)務(wù)請(qǐng)求訪問(wèn)端口上,同時(shí)控制所述處理實(shí)例B接收業(yè)務(wù)請(qǐng)求并處理。
[0027]優(yōu)選地,所述停止接收模塊還包括:
[0028]停止業(yè)務(wù)請(qǐng)求發(fā)送單元,用于當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),控制接入層不再向當(dāng)前正在運(yùn)行的處理實(shí)例A發(fā)送業(yè)務(wù)請(qǐng)求,同時(shí)控制當(dāng)前正在運(yùn)行的處理實(shí)例A繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求。
[0029]優(yōu)選地,所述新實(shí)施例創(chuàng)建模塊還包括:
[0030]創(chuàng)建轉(zhuǎn)發(fā)單元,用于通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B,控制接入層將接收到的業(yè)務(wù)請(qǐng)求發(fā)送給所述處理實(shí)例B,同時(shí)控制所述處理實(shí)例B接收業(yè)務(wù)請(qǐng)求并處理。
[0031]本發(fā)明實(shí)施例提出的一種服務(wù)器程序熱升級(jí)的方法及裝置,通過(guò)使用升級(jí)后服務(wù)器程序創(chuàng)建新的處理實(shí)例處理后續(xù)業(yè)務(wù)請(qǐng)求,同時(shí)舊處理實(shí)例處理完當(dāng)前正在處理的業(yè)務(wù)請(qǐng)求后退出,保證服務(wù)器程序升級(jí)時(shí)數(shù)據(jù)不丟失,實(shí)現(xiàn)了服務(wù)器程序熱升級(jí),同時(shí)保證了服務(wù)器程序升級(jí)時(shí)數(shù)據(jù)的完整性,并且由于熱升級(jí)對(duì)用戶來(lái)說(shuō)時(shí)透明的,不會(huì)給用戶帶來(lái)使用體驗(yàn)上的影響。
【附圖說(shuō)明】
[0032]圖1為本發(fā)明服務(wù)器程序熱升級(jí)的方法的第一實(shí)施例的流程示意圖;
[0033]圖2為本發(fā)明服務(wù)器程序熱升級(jí)的方法的第二實(shí)施例的流程示意圖;
[0034]圖3為本發(fā)明服務(wù)器程序熱升級(jí)的方法的第三實(shí)施例的流程示意圖;
[0035]圖4為本發(fā)明服務(wù)器程序熱升級(jí)的裝置的第一實(shí)施例的功能模塊示意圖;
[0036]圖5為本發(fā)明服務(wù)器程序熱升級(jí)的裝置的第二實(shí)施例的功能模塊示意圖;
[0037]圖6為本發(fā)明服務(wù)器程序熱升級(jí)的裝置的第三實(shí)施例的功能模塊示意圖;
[0038]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
【具體實(shí)施方式】
[0039]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0040]本發(fā)明實(shí)施例的主要解決方案是:當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),服務(wù)器控制當(dāng)前正在運(yùn)行的處理實(shí)例A停止接收業(yè)務(wù)請(qǐng)求,并繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求;服務(wù)器通過(guò)升級(jí)后的服務(wù)器程序創(chuàng)建新的處理實(shí)例B處理所述處理實(shí)例B接收到的業(yè)務(wù)請(qǐng)求;當(dāng)所述處理實(shí)例A處理完成業(yè)務(wù)請(qǐng)求后,服務(wù)器控制所述處理實(shí)例A退出,服務(wù)器程序熱升級(jí)完成。
[0041]由于現(xiàn)有技術(shù)服務(wù)器程序升級(jí)時(shí)需要通過(guò)重啟進(jìn)行,當(dāng)在服務(wù)器程序重啟升級(jí)時(shí)會(huì)斷開(kāi)連接,造成正在服務(wù)的連接中斷,且造成數(shù)據(jù)丟失,使數(shù)據(jù)完整性得不到保證。
[0042]本發(fā)明提供一種解決方案,使服務(wù)器程序升級(jí)時(shí)不再需要重啟,而進(jìn)行熱升級(jí),保證服務(wù)器程序升級(jí)時(shí)服務(wù)不中斷,從而避免了由于服務(wù)中斷瞬間文件操作等被強(qiáng)制中斷而造成的數(shù)據(jù)丟失,進(jìn)一步保證了數(shù)據(jù)的完整性。
[0043]參照?qǐng)D1,本發(fā)明服務(wù)器程序熱升級(jí)的方法的第一實(shí)施例,所述服務(wù)器程序熱升級(jí)的方法包括:
[0044]步驟S100,當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),服務(wù)器控制當(dāng)前正在運(yùn)行的處理實(shí)例A停止接受業(yè)務(wù)請(qǐng)求,并繼續(xù)處理正在處理的業(yè)務(wù)請(qǐng)求。
[0045]當(dāng)服務(wù)器程序進(jìn)行升級(jí)時(shí),服務(wù)器不中斷當(dāng)前正在運(yùn)行的處理實(shí)例A即舊處理實(shí)例的運(yùn)行,控制所述處理實(shí)例A繼續(xù)對(duì)正在處理的業(yè)務(wù)請(qǐng)求進(jìn)行處理,為避免新業(yè)務(wù)請(qǐng)求有所述處理實(shí)例A處理,因此所述處理實(shí)例A不再接收新的業(yè)務(wù)請(qǐng)求。
[