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