一種數據處理方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及服務器數據的雙機熱備技術,尤其涉及一種數據處理方法和系統(tǒng)。
【背景技術】
[0002]隨著互聯網(移動互聯網)高速發(fā)展,用戶越來越依賴服務器提供的數據服務,對數據的可用性需求增強,需要更加隨時隨地的訪問服務器提供的服務(數據);并且現有技術中提供了各種雙機熱備,避免一旦服務器出現問題時,會使整個服務系統(tǒng)癱瘓,嚴重影響用戶應用,但是在雙機熱備方案中,必須保證處于熱備狀態(tài)的雙機上的數據的一致性。
【發(fā)明內容】
[0003]為了解決上述問題,本發(fā)明提出了一種數據處理方法和系統(tǒng),能夠保證處于熱備狀態(tài)的主從雙機上的數據的一致性。
[0004]為了達到上述目的,本發(fā)明提出了一種數據處理方法,該方法包括:
[0005]客戶端分別向主服務器和從服務器發(fā)送相同的數據。
[0006]接收主服務器返回的主服務器對接收到的數據處理后的數據。
[0007]接收從服務器返回的從服務器接收到該數據的確認信息。其中,主服務器和從服務器分別置于不同的機房內。
[0008]優(yōu)選地,該方法還包括:
[0009]當主服務器發(fā)生故障時,客戶端向從服務器發(fā)送切換命令,命令從服務器切換為主服務器進行工作,并命令從服務器在切換之前將從客戶端接收到的并且未處理的數據進行處理。
[0010]當從服務器發(fā)生故障時,客戶端命令主服務器繼續(xù)接收客戶端發(fā)送的數據并對該數據進行處理,并命令主服務器將處理后的數據返回客戶端。
[0011]優(yōu)選地,該方法還包括:
[0012]當主服務器發(fā)生故障時,客戶端接收主服務器發(fā)送的主服務器出現故障的第一通知消息,并且將主服務器發(fā)生故障的時間數據發(fā)送給從服務器,通過切換命令來命令從服務器根據發(fā)生故障的時間數據切換為主服務器進行工作。
[0013]當主服務器故障恢復后,客戶端將主服務器恢復正常的消息通知從服務器,并接收從服務器發(fā)送的主服務器發(fā)生故障期間從服務器接收并處理的數據,將該數據轉發(fā)給主服務器。
[0014]優(yōu)選地,該方法還包括:
[0015]當主服務器故障恢復后,客戶端再次發(fā)送切換命令,命令主服務器或從服務器恢復故障之前的主從分工工作,或者客戶端不發(fā)送切換命令,使主服務器和從服務器繼續(xù)維持當前的主從分工工作。
[0016]優(yōu)選地,該方法還包括:
[0017]在從服務器未發(fā)生故障時,當內存數據庫中備份的數據的數量達到預設的存儲閾值時,從服務器處理內存數據庫中備份的數據,并將處理后的數據轉存到非內存數據庫中。
[0018]為了達到上述目的,本發(fā)明還提出了一種數據處理系統(tǒng),該系統(tǒng)包括客戶端、主服務器和一個或多個從服務器。
[0019]客戶端,用于分別向主服務器和從服務器發(fā)送相同的數據。
[0020]客戶端,還用于接收主服務器返回的主服務器對接收到的數據處理后的數據。
[0021]客戶端,還用于接收從服務器返回的從服務器接收到數據的確認信息。
[0022]其中,主服務器和從服務器分別置于不同的機房內。
[0023]優(yōu)選地,客戶端還用于:
[0024]當主服務器發(fā)生故障時,向從服務器發(fā)送切換命令,命令從服務器切換為主服務器進行工作,并命令從服務器在切換之前將從客戶端接收到的并且未處理的數據進行處理。
[0025]當從服務器發(fā)生故障時,命令主服務器繼續(xù)接收客戶端發(fā)送的數據并對該數據進行處理,并命令主服務器將處理后的數據返回客戶端。
[0026]優(yōu)選地,客戶端還用于:
[0027]當主服務器發(fā)生故障時,接收主服務器發(fā)送的主服務器出現故障的第一通知消息,并且將主服務器發(fā)生故障的時間數據發(fā)送給從服務器,通過切換命令來命令從服務器根據發(fā)生故障的時間數據切換為主服務器進行工作。
[0028]當主服務器故障恢復后,將主服務器恢復正常的消息通知從服務器,并接收從服務器發(fā)送的主服務器發(fā)生故障期間從服務器接收并處理的數據,將該數據轉發(fā)給主服務器。
[0029]優(yōu)選地,客戶端還用于:
[0030]當主服務器故障恢復后,再次發(fā)送切換命令,命令主服務器或從服務器恢復故障之前的主從分工工作,或者客戶端不發(fā)送切換命令,使主服務器和從服務器繼續(xù)維持當前的主從分工工作。
[0031]優(yōu)選地,
[0032]從服務器用于,在從服務器未發(fā)生故障時,當內存數據庫中備份的數據的數量達到預設的存儲閾值時,處理內存數據庫中備份的數據,并將處理后的數據轉存到非內存數據庫中。
[0033]與現有技術相比,本發(fā)明包括:客戶端分別向主服務器和從服務器發(fā)送相同的數據,接收主服務器返回的主服務器對接收到的數據處理后的結果數據,接收從服務器返回的從服務器接收到該數據的確認信息。其中,主服務器和從服務器分別置于不同的機房內。通過本發(fā)明的方案,能夠保證處于熱備狀態(tài)的主從雙機上的數據的一致性。
【附圖說明】
[0034]下面對本發(fā)明實施例中的附圖進行說明,實施例中的附圖是用于對本發(fā)明的進一步理解,與說明書一起用于解釋本發(fā)明,并不構成對本發(fā)明保護范圍的限制。
[0035]圖1為本發(fā)明的數據處理方法流程圖;
[0036]圖2為本發(fā)明的數據處理結構圖;
[0037]圖3為傳統(tǒng)的雙機熱備方案拓撲與本發(fā)明的雙機熱備方案拓撲對比圖;
[0038]圖4為本發(fā)明的數據處理系統(tǒng)組成框圖。
【具體實施方式】
[0039]為了便于本領域技術人員的理解,下面結合附圖對本發(fā)明作進一步的描述,并不能用來限制本發(fā)明的保護范圍。
[0040]本發(fā)明根據現有技術中存在的問題提出了一種增加控制端的異地雙機熱備方案,通過控制端的控制,使處于熱備狀態(tài)的主從服務器上的數據流保持一致,另外,本發(fā)明中的主從服務器分別處于不同的機房中,當某地出現問題時,另一個地方會及時提供服務,用戶不會受到明顯影響。
[0041]具體地,為了達到上述目的,本發(fā)明提出了一種數據處理方法,如圖1、圖2所示,該方法包括:
[0042]S101、客戶端分別向主服務器和從服務器發(fā)送相同的數據。
[0043]在本發(fā)明實施例中,為了節(jié)約硬件投資,本發(fā)明采用客戶端作為控制端,控制數據的分發(fā)并控制主從服務器的工作狀態(tài)。
[0044]另外,在本發(fā)明實施例中,主服務器和從服務器分別置于不同的機房內。如圖3所示,其中,(a)為傳統(tǒng)的雙機熱備方案拓撲圖,(b)為本發(fā)明的雙機熱備方案拓撲圖。并且,從服務器可以為一個或多個,均與主服務器放置于不同的機房中。這一異地雙機熱備方案,當某地出現問題時,另一個地方會及時提供服務,用戶不會受到明顯影響。
[0045]S102、接收主服務器返回的主服務器對接收到的數據處理后的數據。
[0046]在本發(fā)明實施例中,主服務器接收到客戶端發(fā)送的數據后對該數據進行處理,并將處理后的數據返回給客戶端。
[0047]優(yōu)選地,該方法還包括:
[0048]當主服務器發(fā)生故障時,客戶端向從服務器發(fā)送切換命令,命令從服務器切換為主服務器進行工作,并命令從服務器在切換之前將從客戶端接收到的并且未處理的數據進行處理。
[0049]優(yōu)選地,該方法還包括:
[0050]當主服務器發(fā)生故障時,客戶端接收主服務器發(fā)送的主服務器出現故障的第一通知消息,并且將主服務器發(fā)生故障的時間數據發(fā)送給從服務器,通過切換命令來命令從服務器根據發(fā)生故障的時間數據切換為主服務器進行工作。
[0051]當主服務器故障恢復后,客戶端將主服務器恢復正常的消息通知從服務器,并接收從服務器發(fā)送的主服務器發(fā)生故障期間從服務器接收并處理的數據,將該數據轉發(fā)給主服務器。
[0052]優(yōu)選地,該方法還包括:
[0053]當主服務器故障恢復后,客戶端再次發(fā)送切換命令,命令主服務器或從服務器恢復故障之前的主從分工工作,或者客戶端不發(fā)送切換命令,使主服務器和從服務器繼續(xù)維持當前的主從分工工作。
[0054]S103、接收從服務器返回的從服務器接收到該數據的確認信息。
[0055]在本發(fā)明實施例中,從服務器接收客戶端發(fā)送的數據,將該數據備份到內存數據庫中,并向客戶端返回接收到該數據的確認信息。
[0056]優(yōu)選地,該方法還包括:
[0057]當從服務器發(fā)生故障時,客戶端命令主服務器繼續(xù)接收客戶端發(fā)送的數據并對該數據進行處理,并命令主服務器將處理后的數據返回客戶端。。即,主服務器接收并處理客戶端數據的方式不變。
[0058]優(yōu)選地,該方法還包括:
[0059]當從服務器發(fā)生故障時,客戶端接收從服務器發(fā)送的該從服務器出現故障的第三通知消息,并且在從服務器恢復正常之后,